Codegen: add internal to properties, rename ql_internal->internal

This commit is contained in:
Paolo Tranquilli
2023-11-24 05:58:45 +01:00
parent a8fcfd154f
commit 9264b2a6d6
6 changed files with 50 additions and 29 deletions

View File

@@ -147,15 +147,15 @@ def test_class_with_children():
assert cls.has_children is True
@pytest.mark.parametrize("doc,ql_internal,expected",
@pytest.mark.parametrize("doc,internal,expected",
[
(["foo", "bar"], False, True),
(["foo", "bar"], True, True),
([], False, False),
([], True, True),
])
def test_has_doc(doc, ql_internal, expected):
stub = ql.Stub("Class", base_import="foo", import_prefix="bar", doc=doc, ql_internal=ql_internal)
def test_has_doc(doc, internal, expected):
stub = ql.Stub("Class", base_import="foo", import_prefix="bar", doc=doc, internal=internal)
assert stub.has_qldoc is expected

View File

@@ -157,8 +157,8 @@ def test_one_empty_internal_class(generate_classes):
assert generate_classes([
schema.Class("A", pragmas=["ql_internal"])
]) == {
"A.qll": (a_ql_stub(name="A", ql_internal=True),
a_ql_class(name="A", final=True, ql_internal=True)),
"A.qll": (a_ql_stub(name="A", internal=True),
a_ql_class(name="A", final=True, internal=True)),
}
@@ -202,11 +202,11 @@ def test_hierarchy_children(generate_children_implementations):
schema.Class("C", bases=["A"], derived={"D"}, pragmas=["ql_internal"]),
schema.Class("D", bases=["B", "C"]),
]) == ql.GetParentImplementation(
classes=[a_ql_class(name="A", ql_internal=True),
classes=[a_ql_class(name="A", internal=True),
a_ql_class(name="B", bases=["A"], imports=[
stub_import_prefix + "A"]),
a_ql_class(name="C", bases=["A"], imports=[
stub_import_prefix + "A"], ql_internal=True),
stub_import_prefix + "A"], internal=True),
a_ql_class(name="D", final=True, bases=["B", "C"],
imports=[stub_import_prefix + cls for cls in "BC"]),
],
@@ -228,6 +228,21 @@ def test_single_property(generate_classes):
}
def test_internal_property(generate_classes):
assert generate_classes([
schema.Class("MyObject", properties=[
schema.SingleProperty("foo", "bar", pragmas=["ql_internal"])]),
]) == {
"MyObject.qll": (a_ql_stub(name="MyObject"),
a_ql_class(name="MyObject", final=True,
properties=[
ql.Property(singular="Foo", type="bar", tablename="my_objects",
tableparams=["this", "result"], doc="foo of this my object",
internal=True),
])),
}
def test_children(generate_classes):
assert generate_classes([
schema.Class("FakeRoot"),
@@ -424,7 +439,8 @@ def test_class_dir(generate_classes):
schema.Class("A", derived={"B"}, group=dir),
schema.Class("B", bases=["A"]),
]) == {
f"{dir}/A.qll": (a_ql_stub(name="A", import_prefix="another.rel.path."), a_ql_class(name="A", dir=pathlib.Path(dir))),
f"{dir}/A.qll": (
a_ql_stub(name="A", import_prefix="another.rel.path."), a_ql_class(name="A", dir=pathlib.Path(dir))),
"B.qll": (a_ql_stub(name="B"),
a_ql_class(name="B", final=True, bases=["A"],
imports=[stub_import_prefix + "another.rel.path.A"])),
@@ -878,9 +894,9 @@ def test_stub_on_class_with_synth_from_class(generate_classes):
ql.SynthUnderlyingAccessor(argument="Entity", type="Raw::A", constructorparams=["result"]),
]),
a_ql_class(name="MyObject", final=True, properties=[
ql.Property(singular="Foo", type="bar", tablename="my_objects", synth=True,
tableparams=["this", "result"], doc="foo of this my object"),
])),
ql.Property(singular="Foo", type="bar", tablename="my_objects", synth=True,
tableparams=["this", "result"], doc="foo of this my object"),
])),
}
@@ -895,9 +911,9 @@ def test_stub_on_class_with_synth_on_arguments(generate_classes):
ql.SynthUnderlyingAccessor(argument="Label", type="string", constructorparams=["_", "_", "result"]),
]),
a_ql_class(name="MyObject", final=True, properties=[
ql.Property(singular="Foo", type="bar", tablename="my_objects", synth=True,
tableparams=["this", "result"], doc="foo of this my object"),
])),
ql.Property(singular="Foo", type="bar", tablename="my_objects", synth=True,
tableparams=["this", "result"], doc="foo of this my object"),
])),
}
@@ -909,7 +925,8 @@ def test_synth_property(generate_classes):
"MyObject.qll": (a_ql_stub(name="MyObject"),
a_ql_class(name="MyObject", final=True,
properties=[
ql.Property(singular="Foo", type="bar", tablename="my_objects", synth=True,
ql.Property(singular="Foo", type="bar", tablename="my_objects",
synth=True,
tableparams=["this", "result"], doc="foo of this my object"),
])),
}
@@ -934,9 +951,10 @@ def test_hideable_property(generate_classes):
"Other.qll": (a_ql_stub(name="Other"),
a_ql_class(name="Other", imports=[stub_import_prefix + "MyObject"],
final=True, properties=[
ql.Property(singular="X", type="MyObject", tablename="others", type_is_hideable=True,
tableparams=["this", "result"], doc="x of this other"),
])),
ql.Property(singular="X", type="MyObject", tablename="others",
type_is_hideable=True,
tableparams=["this", "result"], doc="x of this other"),
])),
}