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
No related branches found
No related tags found
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
conn.password = secrets.get('password')
conn.login = secrets.get('login')
# add all remaining secrets to extra
extra = conn.extra
extra = json.loads(conn.extra)
for key in secrets.keys():
if key in ['password', 'login']:
continue
extra[key] = secrets[key]
conn.extra = extra
conn.extra = json.dumps(extra)
return conn
......@@ -88,7 +88,7 @@ class DatacatSecretsBackend(BaseSecretsBackend):
log.debug(f"Get connection: {conn_id}")
secrets_conn = DataCatConnectionWithSecrets(self.url, self.user, self.password)
data = 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))
data: Dict[str,str] = DataCatalogEntry.from_json(secrets_conn.get_entry(connection_backend_type, conn_id)).__dict__
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)
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 to comment