Skip to content
Snippets Groups Projects
Verified Commit 99e2c83a authored by Martin Weise's avatar Martin Weise
Browse files

Fixed the python library deserializer

parent 74334deb
No related branches found
No related tags found
No related merge requests found
Showing
with 48 additions and 51 deletions
{{- if .Values.brokerService.enabled }}
---
apiVersion: v1
kind: Secret
......@@ -85,3 +86,4 @@ stringData:
-----BEGIN RSA PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
-----END RSA PUBLIC KEY-----
{{- end }}
{{- if .Values.dataDb.enabled }}
{{- if .Values.dataDb.persistence.enabled }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
......@@ -10,4 +13,6 @@ spec:
- ReadWriteMany
resources:
requests:
storage: 10Gi
\ No newline at end of file
storage: 8Gi
{{- end }}
{{- end }}
\ No newline at end of file
{{- if .Values.metadataDb.enabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
......@@ -569,4 +571,4 @@ data:
('prov', 'http://www.w3.org/ns/prov#', null, null, null),
('db', 'http://dbpedia.org', 'http://dbpedia.org/ontology/.*', 'http://dbpedia.org/sparql', null);
COMMIT;
{{- end }}
{{- if .Values.searchDbDashboard.enabled }}
---
apiVersion: v1
kind: Secret
metadata:
......@@ -19,3 +21,4 @@ stringData:
verificationMode: none
username: {{ .Values.searchdb.username }}
password: {{ .Values.searchdb.password }}
{{- end }}
{{- if .Values.storageservice.enabled }}
---
apiVersion: batch/v1
kind: Job
metadata:
......@@ -49,3 +51,4 @@ spec:
secret:
defaultMode: 420
secretName: seaweedfs-s3-secret
{{- end }}
{{- if .Values.storageservice.enabled }}
---
apiVersion: v1
kind: Secret
metadata:
......@@ -28,4 +30,4 @@ stringData:
}
]
}
{{- end }}
import dataclasses
import datetime
import sys
import os
import logging
......@@ -48,7 +46,7 @@ class RestClient:
else:
self.secure = secure
def _wrapper(self, method: str, url: str, params: [(str,)] = None, payload=None, headers=None,
def _wrapper(self, method: str, url: str, params: [(str,)] = None, payload=None, headers: dict = None,
force_auth: bool = False, stream: bool = False) -> requests.Response:
if force_auth and (self.username is None or self.password is None):
raise AuthenticationError(f"Failed to perform request: authentication required")
......@@ -110,7 +108,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[User]).validate_json(body)
return TypeAdapter(List[User]).validate_python(body)
raise ResponseCodeError(f'Failed to find users: response code: {response.status_code} is not 200 (OK)')
def get_user(self, user_id: str) -> User:
......@@ -272,7 +270,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[ContainerBrief]).validate_json(body)
return TypeAdapter(List[ContainerBrief]).validate_python(body)
raise ResponseCodeError(f'Failed to find containers: response code: {response.status_code} is not 200 (OK)')
def get_container(self, container_id: int) -> Container:
......@@ -305,7 +303,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[Database]).validate_json(body)
return TypeAdapter(List[Database]).validate_python(body)
raise ResponseCodeError(f'Failed to find databases: response code: {response.status_code} is not 200 (OK)')
def get_databases_count(self) -> int:
......@@ -470,7 +468,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[Table]).validate_json(body)
return TypeAdapter(List[Table]).validate_python(body)
raise ResponseCodeError(f'Failed to find tables: response code: {response.status_code} is not 200 (OK)')
def get_table(self, database_id: int, table_id: int) -> Table:
......@@ -534,7 +532,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[View]).validate_json(body)
return TypeAdapter(List[View]).validate_python(body)
if response.status_code == 403:
raise ForbiddenError(f'Failed to find views: not allowed')
if response.status_code == 404:
......@@ -1265,7 +1263,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[Query]).validate_json(body)
return TypeAdapter(List[Query]).validate_python(body)
if response.status_code == 403 or response.status_code == 405:
raise ForbiddenError(f'Failed to find queries: not allowed')
if response.status_code == 404:
......@@ -1393,7 +1391,7 @@ class RestClient:
response = self._wrapper(method="get", url=url)
if response.status_code == 200:
body = response.json()
return TypeAdapter(List[License]).validate_json(body)
return TypeAdapter(List[License]).validate_python(body)
raise ResponseCodeError(f'Failed to get licenses: response code: {response.status_code} is not 200 (OK)')
def get_identifiers(self, ld: bool = False) -> List[Identifier] | str:
......@@ -1417,7 +1415,7 @@ class RestClient:
return response.json()
else:
body = response.json()
return TypeAdapter(List[Identifier]).validate_json(body)
return TypeAdapter(List[Identifier]).validate_python(body)
if response.status_code == 406:
raise MalformedError(
f'Failed to get identifiers: accept header must be application/json or application/ld+json')
......
......
from dbrepo.RestClient import RestClient
from python.dbrepo.api.dto import AccessType
client = RestClient(endpoint="https://test.dbrepo.tuwien.ac.at", username="foo",
client = RestClient(endpoint="https://dbrepo1.ec.tuwien.ac.at", username="foo",
password="bar")
client.delete_database_access()
client.get_licenses()
import datetime
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -17,7 +15,7 @@ class ContainerTest(unittest.TestCase):
def test_get_containers_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/container', json=dumps([]))
mock.get('/api/container', json=[])
# test
response = RestClient().get_containers()
self.assertEqual([], response)
......@@ -37,7 +35,7 @@ class ContainerTest(unittest.TestCase):
hash="f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50")
]
# mock
mock.get('/api/container', json=dumps([exp[0].model_dump()]))
mock.get('/api/container', json=[exp[0].model_dump()])
# test
response = RestClient().get_containers()
self.assertEqual(exp, response)
......
......
import datetime
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -19,7 +17,7 @@ class DatabaseTest(unittest.TestCase):
def test_get_databases_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/database', json=dumps([]))
mock.get('/api/database', json=[])
# test
response = RestClient().get_databases()
self.assertEqual([], response)
......@@ -70,7 +68,7 @@ class DatabaseTest(unittest.TestCase):
]
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/database', json=dumps([exp[0].model_dump()]))
mock.get('/api/database', json=[exp[0].model_dump()])
# test
response = RestClient().get_databases()
self.assertEqual(exp, response)
......
......
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -174,7 +172,7 @@ class IdentifierTest(unittest.TestCase):
type=RelatedIdentifierType.DOI)],
creators=[IdentifierCreator(id=5, creator_name='Carberry, Josiah')])]
# mock
mock.get('/api/pid', json=dumps([exp[0].model_dump()]), headers={"Accept": "application/json"})
mock.get('/api/pid', json=[exp[0].model_dump()], headers={"Accept": "application/json"})
# test
response = RestClient().get_identifiers()
self.assertEqual(exp, response)
......
......
import unittest
from json import dumps
import requests_mock
import dataclasses
from dbrepo.RestClient import RestClient
from dbrepo.api.dto import Database, User, Container, Image, UserAttributes, DatabaseAccess, AccessType, License
from dbrepo.api.exceptions import ResponseCodeError, NotExistsError, ForbiddenError, MalformedError
from dbrepo.api.dto import License
class DatabaseTest(unittest.TestCase):
......@@ -15,7 +12,7 @@ class DatabaseTest(unittest.TestCase):
def test_get_licenses_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/database/license', json=dumps([]))
mock.get('/api/database/license', json=[])
# test
response = RestClient().get_licenses()
self.assertEqual([], response)
......@@ -25,7 +22,7 @@ class DatabaseTest(unittest.TestCase):
exp = [License(identifier='CC-BY-4.0', uri='https://creativecommons.org/licenses/by/4.0/',
description='The Creative Commons Attribution license allows re-distribution and re-use of a licensed work on the condition that the creator is appropriately credited.')]
# mock
mock.get('/api/database/license', json=dumps([exp[0].model_dump()]))
mock.get('/api/database/license', json=[exp[0].model_dump()])
# test
response = RestClient().get_licenses()
self.assertEqual(exp, response)
......
......
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -165,7 +163,7 @@ class QueryTest(unittest.TestCase):
with requests_mock.Mocker() as mock:
exp = []
# mock
mock.get('/api/database/1/query', json=dumps([]))
mock.get('/api/database/1/query', json=[])
# test
response = RestClient().get_queries(database_id=1)
self.assertEqual(exp, response)
......@@ -188,7 +186,7 @@ class QueryTest(unittest.TestCase):
result_number=None,
identifiers=[])]
# mock
mock.get('/api/database/1/query', json=dumps([exp[0].model_dump()]))
mock.get('/api/database/1/query', json=[exp[0].model_dump()])
# test
response = RestClient().get_queries(database_id=1)
self.assertEqual(exp, response)
......
......
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -113,7 +111,7 @@ class TableTest(unittest.TestCase):
def test_get_tables_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/database/1/table', json=dumps([]))
mock.get('/api/database/1/table', json=[])
# test
response = RestClient().get_tables(database_id=1)
self.assertEqual([], response)
......@@ -147,7 +145,7 @@ class TableTest(unittest.TestCase):
is_public=True,
is_null_allowed=False)])]
# mock
mock.get('/api/database/1/table', json=dumps([exp[0].model_dump()]))
mock.get('/api/database/1/table', json=[exp[0].model_dump()])
# test
response = RestClient().get_tables(database_id=1)
self.assertEqual(exp, response)
......
......
import dataclasses
import unittest
from json import dumps
import requests_mock
......@@ -24,7 +22,7 @@ class UserTest(unittest.TestCase):
def test_get_users_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('http://gateway-service/api/user', json=dumps([]))
mock.get('http://gateway-service/api/user', json=[])
# test
response = RestClient().get_users()
self.assertEqual([], response)
......@@ -36,7 +34,7 @@ class UserTest(unittest.TestCase):
attributes=UserAttributes(theme='dark'))
]
# mock
mock.get('http://gateway-service/api/user', json=dumps([exp[0].model_dump()]))
mock.get('http://gateway-service/api/user', json=[exp[0].model_dump()])
# test
response = RestClient().get_users()
self.assertEqual(exp, response)
......
......
import unittest
from json import dumps
import requests_mock
import datetime
......@@ -16,7 +14,7 @@ class ViewTest(unittest.TestCase):
def test_get_views_empty_succeeds(self):
with requests_mock.Mocker() as mock:
# mock
mock.get('/api/database/1/view', json=dumps([]))
mock.get('/api/database/1/view', json=[])
# test
response = RestClient().get_views(database_id=1)
self.assertEqual([], response)
......@@ -37,7 +35,7 @@ class ViewTest(unittest.TestCase):
last_modified=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc),
identifiers=[])]
# mock
mock.get('/api/database/1/view', json=dumps([exp[0].model_dump()]))
mock.get('/api/database/1/view', json=[exp[0].model_dump()])
# test
response = RestClient().get_views(database_id=1)
self.assertEqual(exp, response)
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment