diff --git a/src/datacat_integration/secrets.py b/src/datacat_integration/secrets.py index d79f11d14b3fc61a00c52f8c946d05f235378c07..065ae5e3c617625db64318602dd10c81e160a735 100644 --- a/src/datacat_integration/secrets.py +++ b/src/datacat_integration/secrets.py @@ -12,10 +12,10 @@ connection_backend_type = "airflow_connections" log = logging.getLogger(__name__) -def validate_uuid(uuid_to_test: str, version=4): +def validate_uuid(uuid_to_test: str): """Check if uuid_to_test id a valid UUID. Returns True if it is and false if it is not.""" try: - uuid_obj = uuid.UUID(uuid_to_test, version=version) + uuid_obj = uuid.UUID(uuid_to_test) except ValueError: return False return str(uuid_obj) == uuid_to_test diff --git a/tests/test_secrets.py b/tests/test_secrets.py index 54a910d966c7909e9357ed90ad63a1529970a37b..f408922d685b91b91e3e5ab26c21bbbf1cd95459 100644 --- a/tests/test_secrets.py +++ b/tests/test_secrets.py @@ -1,8 +1,9 @@ from unittest import TestCase import os, json +import uuid from dotenv import load_dotenv -from datacat_integration.secrets import DataCatConnectionWithSecrets, get_connection_with_secrets_from_entry, DatacatSecretsBackend +from datacat_integration.secrets import DataCatConnectionWithSecrets, get_connection_with_secrets_from_entry, DatacatSecretsBackend, validate_uuid class TestSecretsBackend(TestCase): @@ -26,6 +27,9 @@ class TestSecretsBackend(TestCase): self.assertEqual(conn.extra_dejson['some_public_extra'], "12345") self.assertEqual(conn.extra_dejson['some_other_extra_to_be_overwritten_by_secret'], "secret_67890") + def test_uuid_validation(self): + self.assertTrue(validate_uuid(str(uuid.uuid4()))) + self.assertFalse(validate_uuid("wrong_uuid")) def test_no_error_on_missing_extra(self): get_connection_with_secrets_from_entry({"name" : "some-name", "url" : "some_url", "metadata" : {}}, {}, "test-connection", 'false_oid')