1- import unittest
2-
31import linkml_runtime .utils .yamlutils as yutils
42from linkml_runtime .linkml_model .meta import ClassDefinition , ElementName , SlotDefinition
53from linkml_runtime .utils .dictutils import as_simple_dict
6- from tests .support .test_environment import TestEnvironmentTestCase
7- from tests .test_utils .environment import env
84
95
106def _signature (d ):
@@ -27,50 +23,43 @@ def _is_basic_type(obj):
2723 return _is_python_type (obj ) or isinstance (obj , ElementName )
2824
2925
30- class DictUtilTestCase (TestEnvironmentTestCase ):
31- env = env
32-
33- def test_as_dict (self ):
34- obj = ClassDefinition ("test class" )
35- obj2 = ClassDefinition ("test class" , slot_usage = {"foo" : SlotDefinition (name = "foo" , range = "bar" )})
36- # obj2.slot_usage = {'foo': SlotDefinition(name='foo', range='bar')}
37-
38- # as dict preserves nones and empty lists
39- d = yutils .as_dict (obj )
40- assert isinstance (d , dict )
41- assert d ["name" ] == "test class"
42- assert d ["id_prefixes" ] == []
43- assert d ["description" ] is None
44- for x in _signature (d ):
45- if not _is_python_type (x ):
46- print (f" ****={ x } { type (x )} " )
47- assert all (_is_basic_type (x ) for x in _signature (d ))
48-
49- d2 = yutils .as_dict (obj2 )
50- print (d2 )
51- assert d2 ["slot_usage" ]["foo" ]["range" ] == "bar"
52- assert all (_is_basic_type (x ) for x in _signature (d2 ))
53-
54- # as_simple_dict removes nones and empty lists
55- d = as_simple_dict (obj )
56- print (d )
57- assert isinstance (d , dict )
58- assert all (_is_python_type (x ) for x in _signature (d ))
59- assert d == {"name" : "test class" }
60-
61- d2 = as_simple_dict (obj2 )
62- print (d2 )
63- assert isinstance (d2 , dict )
64- assert d2 == {"name" : "test class" , "slot_usage" : {"foo" : {"name" : "foo" , "range" : "bar" }}}
65-
66- s = yutils .as_yaml (obj )
67- print (s )
68- assert s .strip () == "name: test class"
69-
70- s2 = yutils .as_yaml (obj2 )
71- print (s2 )
72- assert s2 .strip ().startswith ("name: test class" )
73-
74-
75- if __name__ == "__main__" :
76- unittest .main ()
26+ def test_as_dict ():
27+ obj = ClassDefinition ("test class" )
28+ obj2 = ClassDefinition ("test class" , slot_usage = {"foo" : SlotDefinition (name = "foo" , range = "bar" )})
29+ # obj2.slot_usage = {'foo': SlotDefinition(name='foo', range='bar')}
30+
31+ # as dict preserves nones and empty lists
32+ d = yutils .as_dict (obj )
33+ assert isinstance (d , dict )
34+ assert d ["name" ] == "test class"
35+ assert d ["id_prefixes" ] == []
36+ assert d ["description" ] is None
37+ for x in _signature (d ):
38+ if not _is_python_type (x ):
39+ print (f" ****={ x } { type (x )} " )
40+ assert all (_is_basic_type (x ) for x in _signature (d ))
41+
42+ d2 = yutils .as_dict (obj2 )
43+ print (d2 )
44+ assert d2 ["slot_usage" ]["foo" ]["range" ] == "bar"
45+ assert all (_is_basic_type (x ) for x in _signature (d2 ))
46+
47+ # as_simple_dict removes nones and empty lists
48+ d = as_simple_dict (obj )
49+ print (d )
50+ assert isinstance (d , dict )
51+ assert all (_is_python_type (x ) for x in _signature (d ))
52+ assert d == {"name" : "test class" }
53+
54+ d2 = as_simple_dict (obj2 )
55+ print (d2 )
56+ assert isinstance (d2 , dict )
57+ assert d2 == {"name" : "test class" , "slot_usage" : {"foo" : {"name" : "foo" , "range" : "bar" }}}
58+
59+ s = yutils .as_yaml (obj )
60+ print (s )
61+ assert s .strip () == "name: test class"
62+
63+ s2 = yutils .as_yaml (obj2 )
64+ print (s2 )
65+ assert s2 .strip ().startswith ("name: test class" )
0 commit comments