2020 FieldReference , ArchiveReference , BuiltinStructureReference , ConstantValueReference , \
2121 EnumerationReference , InvalidValueReference
2222
23- def test_validating_archive_with_no_structure_defined_raises_missing_symbol_error ():
23+ def get_test_cases ():
24+ test_cases = []
25+ for t in ["T" , "vector< T >" , "multivector< 33, V>" ]:
26+ test_cases .append (t )
27+ return test_cases
28+
29+ @pytest .mark .parametrize ("test_case" , get_test_cases ())
30+ def test_validating_archive_with_no_structure_defined_raises_missing_symbol_error (test_case ):
2431 def __test (resource_type ):
2532 with pytest .raises (MissingSymbol ):
2633 build_ast (
2734 """namespace foo{ archive A { resourceA : %s; } }""" % resource_type )
2835
29- for t in ["T" , "vector< T >" , "multivector< 33, V>" ]:
30- __test (t )
36+ __test (test_case )
3137
3238def test_const_ref_with_mismatched_type ():
3339 with pytest .raises (InvalidConstReference ):
@@ -433,8 +439,21 @@ def test_tree_with_all_features_schema_results_in_the_same_normalized_tree():
433439 '.ns._builtin.multivector.IndexType14.value' : Field ,
434440 } == generated_tree .symbols (include_types = True )
435441
442+ def get_test_cases_resource_types_are_populated_from_structure_references ():
443+ test_cases = []
444+ for values in [
445+ ("T" , res .Instance , {"referenced_structures" : [".n.A.r.@@n@T" ]}),
446+ ("vector< T >" , res .Vector , {"referenced_structures" : [".n.A.r.@@n@T" ]}),
447+ ("multivector< 33, T>" , res .Multivector , {
448+ "referenced_structures" : ['.n.A.r.@@n@_builtin@multivector@IndexType33' ,
449+ '.n.A.r.@@n@T' ]}),
450+ ("raw_data" , res .RawData , {"referenced_structures" : []})
451+ ]:
452+ test_cases .append (values )
453+ return test_cases
436454
437- def test_resource_types_are_populated_from_structure_references ():
455+ @pytest .mark .parametrize ("test_case" , get_test_cases_resource_types_are_populated_from_structure_references ())
456+ def test_resource_types_are_populated_from_structure_references (test_case ):
438457 def __test (schema , resource_type , properties ):
439458 tree = build_ast ("""namespace n{
440459 struct T {
@@ -455,15 +474,7 @@ def __test(schema, resource_type, properties):
455474 assert hasattr (r , k )
456475 assert [tree .find (v ) for v in values ] == getattr (r , k )
457476
458- for values in [
459- ("T" , res .Instance , {"referenced_structures" : [".n.A.r.@@n@T" ]}),
460- ("vector< T >" , res .Vector , {"referenced_structures" : [".n.A.r.@@n@T" ]}),
461- ("multivector< 33, T>" , res .Multivector , {
462- "referenced_structures" : ['.n.A.r.@@n@_builtin@multivector@IndexType33' ,
463- '.n.A.r.@@n@T' ]}),
464- ("raw_data" , res .RawData , {"referenced_structures" : []})
465- ]:
466- __test (values [0 ], values [1 ], values [2 ])
477+ __test (test_case [0 ], test_case [1 ], test_case [2 ])
467478
468479
469480def test_constants_are_referred_from_every_archive ():
0 commit comments