Skip to content

Commit c7815cb

Browse files
authored
Merge pull request #321 from linkml/add-alias-test
Adding a test for induced slot alias fields. Additional CURIE tests
2 parents e5d1886 + 43ba7d3 commit c7815cb

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

tests/test_utils/input/kitchen_sink_noimports.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ classes:
122122
slots:
123123
- street
124124
- city
125+
- postal code
125126

126127
Event:
127128
slots:
@@ -348,6 +349,10 @@ slots:
348349
multivalued: true
349350
inlined_as_list: true
350351

352+
postal code:
353+
alias: zip
354+
range: string
355+
351356

352357
enums:
353358
FamilialRelationshipType:

tests/test_utils/test_metamodelcore.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def test_uriorcuries(self):
4949
URIorCURIE(" ")
5050
with self.assertRaises(ValueError):
5151
URIorCURIE("[")
52+
assert URIorCURIE.is_valid("NCIT:C176962")
5253
lax()
5354
URIorCURIE("1abc:def")
5455
URIorCURIE("1:def")

tests/test_utils/test_schemaview.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ def test_children_method(self):
3838
self.assertEqual(children, ['Adult'])
3939

4040
def test_all_aliases(self):
41+
"""
42+
This tests the aliases slot (not: alias)
43+
:return:
44+
"""
4145
view = SchemaView(SCHEMA_NO_IMPORTS)
4246
aliases = view.all_aliases()
4347
self.assertIn("identifier", aliases["id"])
@@ -46,6 +50,21 @@ def test_all_aliases(self):
4650
self.assertIn("dad", aliases["Adult"])
4751
self.assertNotIn("test", aliases["Adult"])
4852

53+
def test_alias_slot(self):
54+
"""
55+
Tests the alias slot.
56+
57+
The induced slot alias should always be populated. For induced slots, it should default to the
58+
name field if not present.
59+
"""
60+
view = SchemaView(SCHEMA_NO_IMPORTS)
61+
for c in view.all_classes().values():
62+
for s in view.class_induced_slots(c.name):
63+
self.assertIsNotNone(s.alias)
64+
postal_code_slot = view.induced_slot('postal code', 'Address')
65+
self.assertEqual(postal_code_slot.name, 'postal code')
66+
self.assertEqual(postal_code_slot.alias, 'zip')
67+
4968
def test_schemaview_enums(self):
5069
view = SchemaView(SCHEMA_NO_IMPORTS)
5170
with self.assertRaises(ValueError):

0 commit comments

Comments
 (0)