1010@pytest .fixture
1111def generate (opts , renderer , input ):
1212 opts .cpp_output = output_dir
13+ opts .cpp_namespace = "test_namespace"
14+ opts .trap_suffix = "TestTrapSuffix"
15+ opts .cpp_include_dir = "my/include/dir"
1316
1417 def ret (classes ):
1518 input .classes = classes
1619 generated = run_generation (cppgen .generate , opts , renderer )
1720 assert set (generated ) == {output_dir / "TrapClasses.h" }
1821 generated = generated [output_dir / "TrapClasses.h" ]
1922 assert isinstance (generated , cpp .ClassList )
23+ assert generated .namespace == opts .cpp_namespace
24+ assert generated .trap_suffix == opts .trap_suffix
25+ assert generated .include_dir == opts .cpp_include_dir
2026 return generated .classes
2127
2228 return ret
@@ -30,7 +36,7 @@ def test_empty_class(generate):
3036 assert generate ([
3137 schema .Class (name = "MyClass" ),
3238 ]) == [
33- cpp .Class (name = "MyClass" , final = True , trap_name = "MyClassesTrap " )
39+ cpp .Class (name = "MyClass" , final = True , trap_name = "MyClasses " )
3440 ]
3541
3642
@@ -41,7 +47,7 @@ def test_two_class_hierarchy(generate):
4147 schema .Class (name = "B" , bases = {"A" }),
4248 ]) == [
4349 base ,
44- cpp .Class (name = "B" , bases = [base ], final = True , trap_name = "BsTrap " ),
50+ cpp .Class (name = "B" , bases = [base ], final = True , trap_name = "Bs " ),
4551 ]
4652
4753
@@ -50,8 +56,8 @@ def test_complex_hierarchy_topologically_ordered(generate):
5056 b = cpp .Class (name = "B" )
5157 c = cpp .Class (name = "C" , bases = [a ])
5258 d = cpp .Class (name = "D" , bases = [a ])
53- e = cpp .Class (name = "E" , bases = [b , c , d ], final = True , trap_name = "EsTrap " )
54- f = cpp .Class (name = "F" , bases = [c ], final = True , trap_name = "FsTrap " )
59+ e = cpp .Class (name = "E" , bases = [b , c , d ], final = True , trap_name = "Es " )
60+ f = cpp .Class (name = "F" , bases = [c ], final = True , trap_name = "Fs " )
5561 assert generate ([
5662 schema .Class (name = "F" , bases = {"C" }),
5763 schema .Class (name = "B" , derived = {"E" }),
@@ -70,9 +76,9 @@ def test_complex_hierarchy_topologically_ordered(generate):
7076])
7177@pytest .mark .parametrize ("property_cls,optional,repeated,trap_name" , [
7278 (schema .SingleProperty , False , False , None ),
73- (schema .OptionalProperty , True , False , "MyClassPropsTrap " ),
74- (schema .RepeatedProperty , False , True , "MyClassPropsTrap " ),
75- (schema .RepeatedOptionalProperty , True , True , "MyClassPropsTrap " ),
79+ (schema .OptionalProperty , True , False , "MyClassProps " ),
80+ (schema .RepeatedProperty , False , True , "MyClassProps " ),
81+ (schema .RepeatedOptionalProperty , True , True , "MyClassProps " ),
7682])
7783def test_class_with_field (generate , type , expected , property_cls , optional , repeated , trap_name ):
7884 assert generate ([
@@ -81,7 +87,7 @@ def test_class_with_field(generate, type, expected, property_cls, optional, repe
8187 cpp .Class (name = "MyClass" ,
8288 fields = [cpp .Field ("prop" , expected , is_optional = optional ,
8389 is_repeated = repeated , trap_name = trap_name )],
84- trap_name = "MyClassesTrap " ,
90+ trap_name = "MyClasses " ,
8591 final = True )
8692 ]
8793
@@ -94,7 +100,7 @@ def test_class_with_overridden_unsigned_field(generate, name):
94100 ]) == [
95101 cpp .Class (name = "MyClass" ,
96102 fields = [cpp .Field (name , "unsigned" )],
97- trap_name = "MyClassesTrap " ,
103+ trap_name = "MyClasses " ,
98104 final = True )
99105 ]
100106
@@ -106,7 +112,7 @@ def test_class_with_overridden_underscore_field(generate):
106112 ]) == [
107113 cpp .Class (name = "MyClass" ,
108114 fields = [cpp .Field ("something" , "bar" )],
109- trap_name = "MyClassesTrap " ,
115+ trap_name = "MyClasses " ,
110116 final = True )
111117 ]
112118
@@ -119,7 +125,7 @@ def test_class_with_keyword_field(generate, name):
119125 ]) == [
120126 cpp .Class (name = "MyClass" ,
121127 fields = [cpp .Field (name + "_" , "bar" )],
122- trap_name = "MyClassesTrap " ,
128+ trap_name = "MyClasses " ,
123129 final = True )
124130 ]
125131
0 commit comments