@@ -42,34 +42,33 @@ def view():
42
42
return SchemaView (SCHEMA_WITH_IMPORTS )
43
43
44
44
45
- def test_children_method ():
46
- view = SchemaView (SCHEMA_NO_IMPORTS )
47
- children = view .get_children ("Person" )
48
- assert children == ['Adult' ]
49
-
50
- def test_all_aliases ():
51
- """
52
- This tests the aliases slot (not: alias)
53
- :return:
54
- """
55
- view = SchemaView (SCHEMA_NO_IMPORTS )
56
- aliases = view .all_aliases ()
57
- assert "identifier" in aliases ["id" ]
58
- assert "A" in aliases ["subset A" ]
59
- assert "B" in aliases ["subset B" ]
60
- assert "dad" in aliases ["Adult" ]
61
-
62
- def test_alias_slot ():
45
+ def test_children_method (schema_view_no_imports ):
46
+ view = schema_view_no_imports
47
+ children = view .get_children ("Person" )
48
+ assert children == ['Adult' ]
49
+
50
+
51
+ def test_all_aliases (vischema_view_no_imports ):
52
+ """
53
+ This tests the aliases slot (not: alias)
54
+ :return:
55
+ """
56
+ view = schema_view_no_imports
57
+ aliases = view .all_aliases ()
58
+ assert "identifier" in aliases ["id" ]
59
+ assert "A" in aliases ["subset A" ]
60
+ assert "B" in aliases ["subset B" ]
61
+ assert "dad" in aliases ["Adult" ]
62
+
63
+ def test_alias_slot (schema_view_no_imports ):
63
64
"""
64
65
Tests the alias slot.
65
66
66
67
The induced slot alias should always be populated. For induced slots, it should default to the
67
68
name field if not present.
68
69
69
70
"""
70
-
71
- view = SchemaView (SCHEMA_NO_IMPORTS )
72
-
71
+ view = schema_view_no_imports
73
72
for c in view .all_classes ().values ():
74
73
for s in view .class_induced_slots (c .name ):
75
74
assert s .alias is not None # Assert that alias is not None
@@ -79,8 +78,8 @@ def test_alias_slot():
79
78
assert postal_code_slot .alias == 'zip' # Assert alias is 'zip'
80
79
81
80
82
- def test_schemaview_enums ():
83
- view = SchemaView ( SCHEMA_NO_IMPORTS )
81
+ def test_schemaview_enums (schema_view_no_imports ):
82
+ view = schema_view_no_imports
84
83
85
84
# Test for ValueError when passing incorrect parameters
86
85
with pytest .raises (ValueError ):
@@ -322,9 +321,9 @@ def test_schemaview(schema_view_no_imports):
322
321
s = view .induced_slot (sn , 'Dataset' )
323
322
logger .debug (s )
324
323
325
- def test_rollup_rolldown ():
324
+ def test_rollup_rolldown (schema_view_no_imports ):
326
325
# no import schema
327
- view = SchemaView ( SCHEMA_NO_IMPORTS )
326
+ view = schema_view_no_imports
328
327
element_name = 'Event'
329
328
roll_up (view , element_name )
330
329
for slot in view .class_induced_slots (element_name ):
@@ -374,17 +373,15 @@ def test_caching():
374
373
assert len (['Y' , 'Z' , 'W' ]) == len (view .all_classes ())
375
374
376
375
377
- def test_import_map ():
376
+ def test_import_map (view ):
378
377
"""
379
378
Path to import file should be configurable
380
379
"""
381
380
for im in [{"core" : "/no/such/file" }, {"linkml:" : "/no/such/file" }]:
382
381
with pytest .raises (FileNotFoundError ):
383
- view = SchemaView (SCHEMA_WITH_IMPORTS , importmap = im )
384
382
view .all_classes ()
385
383
386
384
for im in [None , {}, {"core" : "core" }]:
387
- view = SchemaView (SCHEMA_WITH_IMPORTS , importmap = im )
388
385
view .all_classes ()
389
386
assert view .imports_closure ().sort () == ['kitchen_sink' , 'core' , 'linkml:types' ].sort () # Assert imports closure
390
387
assert ACTIVITY in view .all_classes () # Assert ACTIVITY is in all classes
@@ -483,9 +480,8 @@ def test_imports(view):
483
480
assert height .unit .ucum_code == "m"
484
481
485
482
486
- def test_imports_from_schemaview ():
483
+ def test_imports_from_schemaview (view ):
487
484
"""view should by default dynamically include imports chain"""
488
- view = SchemaView (SCHEMA_WITH_IMPORTS )
489
485
view2 = SchemaView (view .schema )
490
486
assert len (view .all_classes ()) == len (view2 .all_classes ())
491
487
assert len (view .all_classes (imports = False )) == len (view2 .all_classes (imports = False ))
@@ -575,11 +571,10 @@ def test_direct_remote_imports_additional():
575
571
class_count = len (view .all_classes ())
576
572
assert class_count > 0
577
573
578
- def test_merge_imports ():
574
+ def test_merge_imports (view ):
579
575
"""
580
576
ensure merging and merging imports closure works
581
577
"""
582
- view = SchemaView (SCHEMA_WITH_IMPORTS )
583
578
all_c = copy (view .all_classes ())
584
579
all_c_noi = copy (view .all_classes (imports = False ))
585
580
assert len (all_c_noi ) < len (all_c )
@@ -793,8 +788,7 @@ def test_metamodel_in_schemaview():
793
788
assert exp_slot_uri is not None
794
789
795
790
796
- def test_get_classes_by_slot ():
797
- sv = SchemaView (SCHEMA_WITH_IMPORTS )
791
+ def test_get_classes_by_slot (view ):
798
792
slot = sv .get_slot (AGE_IN_YEARS )
799
793
actual_result = sv .get_classes_by_slot (slot )
800
794
expected_result = ["Person" ]
@@ -833,6 +827,7 @@ def test_materialize_patterns_attribute():
833
827
834
828
835
829
def test_mergeimports ():
830
+ # note the change here to include an extra param not in the fixture
836
831
sv = SchemaView (SCHEMA_WITH_IMPORTS , merge_imports = False )
837
832
classes_list = list (sv .schema .classes .keys ())
838
833
assert "activity" not in classes_list
0 commit comments