From b3f4449c5fb39b9bc5e8b59e44dedae611651833 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Fri, 13 Dec 2024 21:49:29 +0100 Subject: [PATCH] Updated tests --- lib/python/tests/test_unit_query.py | 47 +++++++++++++---------------- lib/python/tests/test_unit_table.py | 26 ++++++++-------- lib/python/tests/test_unit_view.py | 26 ++++++++-------- 3 files changed, 45 insertions(+), 54 deletions(-) diff --git a/lib/python/tests/test_unit_query.py b/lib/python/tests/test_unit_query.py index e1b326fa57..be0982d535 100644 --- a/lib/python/tests/test_unit_query.py +++ b/lib/python/tests/test_unit_query.py @@ -1,3 +1,4 @@ +import json import unittest import requests_mock @@ -6,25 +7,23 @@ import datetime from dbrepo.RestClient import RestClient from pandas import DataFrame -from dbrepo.api.dto import Result, Query, User, UserAttributes, QueryType -from dbrepo.api.exceptions import MalformedError, NotExistsError, ForbiddenError, QueryStoreError, \ - MetadataConsistencyError, AuthenticationError +from dbrepo.api.dto import Query, User, UserAttributes, QueryType +from dbrepo.api.exceptions import MalformedError, NotExistsError, ForbiddenError class QueryUnitTest(unittest.TestCase): def test_create_subset_succeeds(self): with requests_mock.Mocker() as mock: - exp = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.post('/api/database/1/subset', json=exp.model_dump(), status_code=201) + mock.post('/api/database/1/subset', json=json.dumps(exp), headers={'X-Id': '1'}, status_code=201) # test client = RestClient(username="a", password="b") response = client.create_subset(database_id=1, page=0, size=10, query="SELECT id, username FROM some_table WHERE id IN (1,2)") - self.assertEqual(exp, response) + self.assertTrue(DataFrame.equals(df, response)) def test_create_subset_malformed_fails(self): with requests_mock.Mocker() as mock: @@ -64,17 +63,16 @@ class QueryUnitTest(unittest.TestCase): def test_create_subset_not_auth_succeeds(self): with requests_mock.Mocker() as mock: - exp = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.post('/api/database/1/subset', json=exp.model_dump(), status_code=201) + mock.post('/api/database/1/subset', json=json.dumps(exp), headers={'X-Id': '1'}, status_code=201) # test client = RestClient() response = client.create_subset(database_id=1, page=0, size=10, query="SELECT id, username FROM some_table WHERE id IN (1,2)") - self.assertEqual(exp, response) + self.assertTrue(DataFrame.equals(df, response)) def test_find_query_succeeds(self): with requests_mock.Mocker() as mock: @@ -173,27 +171,24 @@ class QueryUnitTest(unittest.TestCase): def test_get_subset_data_succeeds(self): with requests_mock.Mocker() as mock: - exp = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=6) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/subset/6/data', json=exp.model_dump()) + mock.get('/api/database/1/subset/6/data', json=json.dumps(exp)) # test response = RestClient().get_subset_data(database_id=1, subset_id=6) - self.assertEqual(exp, response) + self.assertTrue(DataFrame.equals(df, response)) def test_get_subset_data_dataframe_succeeds(self): with requests_mock.Mocker() as mock: - res = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=6) - exp = DataFrame.from_records(res.model_dump()['result']) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/subset/6/data', json=res.model_dump()) + mock.get('/api/database/1/subset/6/data', json=json.dumps(exp)) # test - response = RestClient().get_subset_data(database_id=1, subset_id=6, df=True) - self.assertEqual(exp.shape, response.shape) - self.assertTrue(DataFrame.equals(exp, response)) + response = RestClient().get_subset_data(database_id=1, subset_id=6) + self.assertEqual(df.shape, response.shape) + self.assertTrue(DataFrame.equals(df, response)) def test_get_subset_data_not_allowed_fails(self): with requests_mock.Mocker() as mock: diff --git a/lib/python/tests/test_unit_table.py b/lib/python/tests/test_unit_table.py index 0be3a4a9fb..b6b7eacafc 100644 --- a/lib/python/tests/test_unit_table.py +++ b/lib/python/tests/test_unit_table.py @@ -1,3 +1,4 @@ +import json import unittest from json import dumps @@ -7,7 +8,7 @@ import datetime from dbrepo.RestClient import RestClient from pandas import DataFrame -from dbrepo.api.dto import Table, CreateTableConstraints, UserAttributes, User, Column, Constraints, ColumnType, Result, \ +from dbrepo.api.dto import Table, CreateTableConstraints, UserAttributes, User, Column, Constraints, ColumnType, \ Concept, Unit, TableStatistics, ColumnStatistic, PrimaryKey, TableMinimal, ColumnMinimal, TableBrief, UserBrief from dbrepo.api.exceptions import MalformedError, ForbiddenError, NotExistsError, NameExistsError, QueryStoreError, \ AuthenticationError, ExternalSystemError @@ -242,27 +243,24 @@ class TableUnitTest(unittest.TestCase): def test_get_table_data_succeeds(self): with requests_mock.Mocker() as mock: - exp = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/table/9/data', json=exp.model_dump()) + mock.get('/api/database/1/table/9/data', json=json.dumps(exp)) # test response = RestClient().get_table_data(database_id=1, table_id=9) - self.assertEqual(exp, response) + self.assertTrue(DataFrame.equals(df, response)) def test_get_table_data_dataframe_succeeds(self): with requests_mock.Mocker() as mock: - res = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) - exp = DataFrame.from_records(res.model_dump()['result']) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/table/9/data', json=res.model_dump()) + mock.get('/api/database/1/table/9/data', json=json.dumps(exp)) # test - response = RestClient().get_table_data(database_id=1, table_id=9, df=True) - self.assertEqual(exp.shape, response.shape) - self.assertTrue(DataFrame.equals(exp, response)) + response = RestClient().get_table_data(database_id=1, table_id=9) + self.assertEqual(df.shape, response.shape) + self.assertTrue(DataFrame.equals(df, response)) def test_get_table_data_malformed_fails(self): with requests_mock.Mocker() as mock: diff --git a/lib/python/tests/test_unit_view.py b/lib/python/tests/test_unit_view.py index 19a88be85a..30fa1d0cc1 100644 --- a/lib/python/tests/test_unit_view.py +++ b/lib/python/tests/test_unit_view.py @@ -1,3 +1,4 @@ +import json import unittest from json import dumps @@ -7,7 +8,7 @@ import datetime from dbrepo.RestClient import RestClient from pandas import DataFrame -from dbrepo.api.dto import UserAttributes, User, View, Result, ViewColumn, ColumnType +from dbrepo.api.dto import UserAttributes, User, View, ViewColumn, ColumnType from dbrepo.api.exceptions import ForbiddenError, NotExistsError, MalformedError, AuthenticationError @@ -211,27 +212,24 @@ class ViewUnitTest(unittest.TestCase): def test_get_view_data_succeeds(self): with requests_mock.Mocker() as mock: - exp = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/view/3/data', json=exp.model_dump()) + mock.get('/api/database/1/view/3/data', json=json.dumps(exp)) # test response = RestClient().get_view_data(database_id=1, view_id=3) - self.assertEqual(exp, response) + self.assertTrue(DataFrame.equals(df, response)) def test_get_view_data_dataframe_succeeds(self): with requests_mock.Mocker() as mock: - res = Result(result=[{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}], - headers=[{'id': 0, 'username': 1}], - id=None) - exp = DataFrame.from_records(res.model_dump()['result']) + exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}] + df = DataFrame.from_records(json.dumps(exp)) # mock - mock.get('/api/database/1/view/3/data', json=res.model_dump()) + mock.get('/api/database/1/view/3/data', json=json.dumps(exp)) # test - response: DataFrame = RestClient().get_view_data(database_id=1, view_id=3, df=True) - self.assertEqual(exp.shape, response.shape) - self.assertTrue(DataFrame.equals(exp, response)) + response: DataFrame = RestClient().get_view_data(database_id=1, view_id=3) + self.assertEqual(df.shape, response.shape) + self.assertTrue(DataFrame.equals(df, response)) def test_get_view_data_malformed_fails(self): with requests_mock.Mocker() as mock: -- GitLab