@@ -36,8 +36,9 @@ def children_file(): return ql_output_path() / "ParentChild.qll"
36
36
37
37
38
38
stub_import = "stub.path"
39
+ stub_import_prefix_internal = stub_import + ".internal."
39
40
stub_import_prefix = stub_import + "."
40
- root_import = stub_import_prefix + "Element"
41
+ root_import = stub_import_prefix_internal + "Element"
41
42
gen_import = "other.path"
42
43
gen_import_prefix = gen_import + "."
43
44
@@ -112,10 +113,13 @@ def _filter_generated_classes(ret, output_test_files=False):
112
113
}
113
114
base_files -= {pathlib .Path (f"{ name } .qll" ) for name in
114
115
("Raw" , "Synth" , "SynthConstructors" , "PureSynthConstructors" )}
116
+ stub_files = {pathlib .Path (f .parent .parent , f .stem + ".qll" ) if f .parent .name ==
117
+ "internal" and pathlib .Path (f .parent .parent , f .stem + ".qll" ) in base_files else f for f in stub_files }
115
118
assert base_files <= stub_files
116
119
return {
117
- str (f ): (ret [stub_path () / f ],
118
- ret [stub_path () / pathlib .Path (f .parent , f .stem + "Impl.qll" )],
120
+ str (f ): (ret [stub_path () / "internal" / f ] if stub_path () / "internal" / f in ret else ret [stub_path () / f ],
121
+ ret [stub_path () / pathlib .Path (f .parent , "internal" if not f .parent .name ==
122
+ "internal" else "" , f .stem + "Impl.qll" )],
119
123
ret [ql_output_path () / f ])
120
124
for f in base_files
121
125
}
@@ -166,7 +170,7 @@ def test_one_empty_internal_class(generate_classes):
166
170
]) == {
167
171
"A.qll" : (a_ql_class_public (name = "A" , internal = True ),
168
172
a_ql_stub (name = "A" ),
169
- a_ql_class (name = "A" , final = True , internal = True , imports = [stub_import_prefix + "A" ])),
173
+ a_ql_class (name = "A" , final = True , internal = True , imports = [stub_import_prefix_internal + "A" ])),
170
174
}
171
175
172
176
@@ -178,10 +182,10 @@ def test_hierarchy(generate_classes):
178
182
schema .Class ("A" , derived = {"B" , "C" }),
179
183
]) == {
180
184
"A.qll" : (a_ql_class_public (name = "A" ), a_ql_stub (name = "A" ), a_ql_class (name = "A" , imports = [stub_import_prefix + "A" ])),
181
- "B.qll" : (a_ql_class_public (name = "B" , imports = [stub_import_prefix + "A" ]), a_ql_stub (name = "B" ), a_ql_class (name = "B" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [stub_import_prefix + "AImpl::Impl as AImpl" ])),
182
- "C.qll" : (a_ql_class_public (name = "C" , imports = [stub_import_prefix + "A" ]), a_ql_stub (name = "C" ), a_ql_class (name = "C" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [stub_import_prefix + "AImpl::Impl as AImpl" ])),
185
+ "B.qll" : (a_ql_class_public (name = "B" , imports = [stub_import_prefix + "A" ]), a_ql_stub (name = "B" ), a_ql_class (name = "B" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [stub_import_prefix_internal + "AImpl::Impl as AImpl" ])),
186
+ "C.qll" : (a_ql_class_public (name = "C" , imports = [stub_import_prefix + "A" ]), a_ql_stub (name = "C" ), a_ql_class (name = "C" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [stub_import_prefix_internal + "AImpl::Impl as AImpl" ])),
183
187
"D.qll" : (a_ql_class_public (name = "D" , imports = [stub_import_prefix + "B" , stub_import_prefix + "C" ]), a_ql_stub (name = "D" ), a_ql_class (name = "D" , final = True , bases = ["B" , "C" ], bases_impl = ["BImpl::B" , "CImpl::C" ],
184
- imports = [stub_import_prefix + cls + "Impl::Impl as " + cls + "Impl" for cls in "BC" ])),
188
+ imports = [stub_import_prefix_internal + cls + "Impl::Impl as " + cls + "Impl" for cls in "BC" ])),
185
189
}
186
190
187
191
@@ -210,15 +214,15 @@ def test_hierarchy_children(generate_children_implementations):
210
214
schema .Class ("C" , bases = ["A" ], derived = {"D" }, pragmas = ["ql_internal" ]),
211
215
schema .Class ("D" , bases = ["B" , "C" ]),
212
216
]) == ql .GetParentImplementation (
213
- classes = [a_ql_class (name = "A" , internal = True , imports = [stub_import_prefix + "A" ]),
217
+ classes = [a_ql_class (name = "A" , internal = True , imports = [stub_import_prefix_internal + "A" ]),
214
218
a_ql_class (name = "B" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [
215
- stub_import_prefix + "AImpl::Impl as AImpl" ]),
219
+ stub_import_prefix_internal + "AImpl::Impl as AImpl" ]),
216
220
a_ql_class (name = "C" , bases = ["A" ], bases_impl = ["AImpl::A" ], imports = [
217
- stub_import_prefix + "AImpl::Impl as AImpl" ], internal = True ),
221
+ stub_import_prefix_internal + "AImpl::Impl as AImpl" ], internal = True ),
218
222
a_ql_class (name = "D" , final = True , bases = ["B" , "C" ], bases_impl = ["BImpl::B" , "CImpl::C" ],
219
- imports = [stub_import_prefix + cls + "Impl::Impl as " + cls + "Impl" for cls in "BC" ]),
223
+ imports = [stub_import_prefix_internal + cls + "Impl::Impl as " + cls + "Impl" for cls in "BC" ]),
220
224
],
221
- imports = [stub_import ] + [stub_import_prefix + cls for cls in "AC" ],
225
+ imports = [stub_import ] + [stub_import_prefix_internal + cls for cls in "AC" ],
222
226
)
223
227
224
228
@@ -471,7 +475,7 @@ def test_class_dir(generate_classes):
471
475
"B.qll" : (a_ql_class_public (name = "B" , imports = [stub_import_prefix + "another.rel.path.A" ]),
472
476
a_ql_stub (name = "B" ),
473
477
a_ql_class (name = "B" , final = True , bases = ["A" ], bases_impl = ["AImpl::A" ],
474
- imports = [stub_import_prefix + "another.rel.path.AImpl::Impl as AImpl" ])),
478
+ imports = [stub_import_prefix + "another.rel.path.internal. AImpl::Impl as AImpl" ])),
475
479
}
476
480
477
481
0 commit comments