diff --git a/unittests/test_directories/single_file_test_data/identifiables.yml b/unittests/test_directories/single_file_test_data/identifiables.yml new file mode 100644 index 0000000000000000000000000000000000000000..e32746d5a6984096cc46fa618250832b325965b0 --- /dev/null +++ b/unittests/test_directories/single_file_test_data/identifiables.yml @@ -0,0 +1,7 @@ +Person: + - full_name +Keyword: + - name +Project: + - project_id + - title diff --git a/unittests/test_identifiable_adapters.py b/unittests/test_identifiable_adapters.py index 4a3ae786438e99ded8925d4405d9b051cd86bf66..df311f1b1e21e841ee09a1246ad07b4d63bb5d70 100644 --- a/unittests/test_identifiable_adapters.py +++ b/unittests/test_identifiable_adapters.py @@ -27,8 +27,10 @@ test identifiable_adapters module """ +import os from datetime import datetime -from newcrawler.identifiable_adapters import IdentifiableAdapter +from newcrawler.identifiable_adapters import ( + CaosDBIdentifiableAdapter, IdentifiableAdapter) import caosdb as db @@ -57,3 +59,27 @@ def test_create_query_for_identifiable(): query = IdentifiableAdapter.create_query_for_identifiable( db.Record(name="TestRecord").add_parent("TestType")) assert query.lower() == "find record testtype with name='testrecord'" + + +def test_load_from_yaml_file(): + ident = CaosDBIdentifiableAdapter() + ident.load_from_yaml_definition( + os.path.join(os.path.dirname(__file__), "test_directories", + "single_file_test_data", "identifiables.yml") + ) + + person_i = ident.get_registered_identifiable( + db.Record().add_parent("Person")) + assert person_i is not None + assert person_i.get_property("full_name") is not None + + keyword_i = ident.get_registered_identifiable( + db.Record().add_parent("Keyword")) + assert keyword_i is not None + assert keyword_i.get_property("name") is not None + + project_i = ident.get_registered_identifiable( + db.Record().add_parent("Project")) + assert project_i is not None + assert project_i.get_property("project_id") is not None + assert project_i.get_property("title") is not None