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