@@ -36,8 +36,9 @@ def children_file(): return ql_output_path() / "ParentChild.qll"
3636
3737
3838stub_import = "stub.path"
39+ stub_import_prefix_internal = stub_import + ".internal."
3940stub_import_prefix = stub_import + "."
40- root_import = stub_import_prefix + "Element"
41+ root_import = stub_import_prefix_internal + "Element"
4142gen_import = "other.path"
4243gen_import_prefix = gen_import + "."
4344
@@ -112,10 +113,13 @@ def _filter_generated_classes(ret, output_test_files=False):
112113 }
113114 base_files -= {pathlib .Path (f"{ name } .qll" ) for name in
114115 ("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 }
115118 assert base_files <= stub_files
116119 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" )],
119123 ret [ql_output_path () / f ])
120124 for f in base_files
121125 }
@@ -166,7 +170,7 @@ def test_one_empty_internal_class(generate_classes):
166170 ]) == {
167171 "A.qll" : (a_ql_class_public (name = "A" , internal = True ),
168172 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" ])),
170174 }
171175
172176
@@ -178,10 +182,10 @@ def test_hierarchy(generate_classes):
178182 schema .Class ("A" , derived = {"B" , "C" }),
179183 ]) == {
180184 "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" ])),
183187 "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" ])),
185189 }
186190
187191
@@ -210,15 +214,15 @@ def test_hierarchy_children(generate_children_implementations):
210214 schema .Class ("C" , bases = ["A" ], derived = {"D" }, pragmas = ["ql_internal" ]),
211215 schema .Class ("D" , bases = ["B" , "C" ]),
212216 ]) == 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" ]),
214218 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" ]),
216220 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 ),
218222 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" ]),
220224 ],
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" ],
222226 )
223227
224228
@@ -471,7 +475,7 @@ def test_class_dir(generate_classes):
471475 "B.qll" : (a_ql_class_public (name = "B" , imports = [stub_import_prefix + "another.rel.path.A" ]),
472476 a_ql_stub (name = "B" ),
473477 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" ])),
475479 }
476480
477481
0 commit comments