From 43ba7d308f92ba164d46f38cbf0b39ec3f24c7ab Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Mon, 8 Apr 2024 08:19:38 -0700 Subject: [PATCH] Adding a test for induced slot alias fields. Additional CURIE tests --- .../input/kitchen_sink_noimports.yaml | 5 +++++ tests/test_utils/test_metamodelcore.py | 1 + tests/test_utils/test_schemaview.py | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/tests/test_utils/input/kitchen_sink_noimports.yaml b/tests/test_utils/input/kitchen_sink_noimports.yaml index 6b3e7ec6..807fe6be 100644 --- a/tests/test_utils/input/kitchen_sink_noimports.yaml +++ b/tests/test_utils/input/kitchen_sink_noimports.yaml @@ -122,6 +122,7 @@ classes: slots: - street - city + - postal code Event: slots: @@ -348,6 +349,10 @@ slots: multivalued: true inlined_as_list: true + postal code: + alias: zip + range: string + enums: FamilialRelationshipType: diff --git a/tests/test_utils/test_metamodelcore.py b/tests/test_utils/test_metamodelcore.py index 3e51a406..1bc26739 100644 --- a/tests/test_utils/test_metamodelcore.py +++ b/tests/test_utils/test_metamodelcore.py @@ -49,6 +49,7 @@ def test_uriorcuries(self): URIorCURIE(" ") with self.assertRaises(ValueError): URIorCURIE("[") + assert URIorCURIE.is_valid("NCIT:C176962") lax() URIorCURIE("1abc:def") URIorCURIE("1:def") diff --git a/tests/test_utils/test_schemaview.py b/tests/test_utils/test_schemaview.py index 06db99e0..ec7f5fbe 100644 --- a/tests/test_utils/test_schemaview.py +++ b/tests/test_utils/test_schemaview.py @@ -38,6 +38,10 @@ def test_children_method(self): self.assertEqual(children, ['Adult']) def test_all_aliases(self): + """ + This tests the aliases slot (not: alias) + :return: + """ view = SchemaView(SCHEMA_NO_IMPORTS) aliases = view.all_aliases() self.assertIn("identifier", aliases["id"]) @@ -46,6 +50,21 @@ def test_all_aliases(self): self.assertIn("dad", aliases["Adult"]) self.assertNotIn("test", aliases["Adult"]) + def test_alias_slot(self): + """ + Tests the alias slot. + + The induced slot alias should always be populated. For induced slots, it should default to the + name field if not present. + """ + view = SchemaView(SCHEMA_NO_IMPORTS) + for c in view.all_classes().values(): + for s in view.class_induced_slots(c.name): + self.assertIsNotNone(s.alias) + postal_code_slot = view.induced_slot('postal code', 'Address') + self.assertEqual(postal_code_slot.name, 'postal code') + self.assertEqual(postal_code_slot.alias, 'zip') + def test_schemaview_enums(self): view = SchemaView(SCHEMA_NO_IMPORTS) with self.assertRaises(ValueError):