Skip to content
Snippets Groups Projects
Commit ef632c33 authored by Christian Boettcher's avatar Christian Boettcher
Browse files

add first basic testcase for secrets backend

parent cd65a836
Branches
Tags release-v0.0.9
No related merge requests found
Pipeline #86466 passed
...@@ -20,13 +20,13 @@ def get_connection_with_secrets_from_entry(data: Dict[str, Any], secrets: Dict[s ...@@ -20,13 +20,13 @@ def get_connection_with_secrets_from_entry(data: Dict[str, Any], secrets: Dict[s
conn.password = secrets.get('password') conn.password = secrets.get('password')
conn.login = secrets.get('login') conn.login = secrets.get('login')
# add all remaining secrets to extra # add all remaining secrets to extra
extra = conn.extra extra = json.loads(conn.extra)
for key in secrets.keys(): for key in secrets.keys():
if key in ['password', 'login']: if key in ['password', 'login']:
continue continue
extra[key] = secrets[key] extra[key] = secrets[key]
conn.extra = extra conn.extra = json.dumps(extra)
return conn return conn
...@@ -88,7 +88,7 @@ class DatacatSecretsBackend(BaseSecretsBackend): ...@@ -88,7 +88,7 @@ class DatacatSecretsBackend(BaseSecretsBackend):
log.debug(f"Get connection: {conn_id}") log.debug(f"Get connection: {conn_id}")
secrets_conn = DataCatConnectionWithSecrets(self.url, self.user, self.password) secrets_conn = DataCatConnectionWithSecrets(self.url, self.user, self.password)
data = DataCatalogEntry.from_json(secrets_conn.get_entry(connection_backend_type, conn_id)).__dict__ data: Dict[str,str] = DataCatalogEntry.from_json(secrets_conn.get_entry(connection_backend_type, conn_id)).__dict__
secrets = json.loads(secrets_conn.get_all_secret_key_value(connection_backend_type, conn_id)) secrets: Dict[str,str] = json.loads(secrets_conn.get_all_secret_key_value(connection_backend_type, conn_id))
conn = get_connection_with_secrets_from_entry(data, secrets, connection_backend_type, conn_id) conn = get_connection_with_secrets_from_entry(data, secrets, connection_backend_type, conn_id)
return conn return conn
\ No newline at end of file
from unittest import TestCase
from datacat_integration.secrets import DataCatConnectionWithSecrets, get_connection_with_secrets_from_entry, DatacatSecretsBackend
class TestSecretsBackenbd(TestCase):
def setUp(self):
self.backend = DatacatSecretsBackend()
self.backend.url = "https://zam10036.zam.kfa-juelich.de"
self.backend.user = "dls-testing"
self.backend.password = "dls-testing-pass"
def test_get_connection_from_oid(self):
conn = self.backend.get_connection("860355e9-975f-4253-9421-1815e20c879b")
self.assertEqual(conn.conn_id, "airflow_connections/860355e9-975f-4253-9421-1815e20c879b-connection")
self.assertEqual(conn.conn_type, "http")
self.assertEqual(conn.port, "443")
self.assertEqual(conn.extra_dejson['some_extra'], "secret_12345")
self.assertEqual(conn.extra_dejson['some_public_extra'], "12345")
self.assertEqual(conn.extra_dejson['some_other_extra_to_be_overwritten_by_secret'], "secret_67890")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment