Skip to content

Commit 0aabf09

Browse files
committed
Add test for lists of forward-referenced nodes
1 parent 11524b4 commit 0aabf09

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

tests/model/test_model.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,18 @@ def __post_init__(self):
2727
@dataclasses.dataclass
2828
class ExtendedNode(SomeNode):
2929
prop = 2
30-
cont_fwd: "ExtendedNode" = None
31-
cont_ref: ReferenceByName["ExtendedNode"] = None
30+
cont_fwd: "ForwardReferencedNode" = None
31+
cont_ref: ReferenceByName["ForwardReferencedNode"] = None
3232
multiple2: List[SomeNode] = dataclasses.field(default_factory=list)
33+
multiple_fwd: List["ForwardReferencedNode"] = dataclasses.field(default_factory=list)
3334
internal2: Node = internal_field(default=None)
3435

3536

37+
@dataclasses.dataclass
38+
class ForwardReferencedNode(Node):
39+
pass
40+
41+
3642
@dataclasses.dataclass
3743
class SomeSymbol(Symbol):
3844
index: int = dataclasses.field(default=None)
@@ -228,15 +234,15 @@ def frob_node_2(_: Node):
228234
pass
229235

230236
pds = [pd for pd in sorted(ExtendedNode.node_properties, key=lambda x: x.name)]
231-
self.assertEqual(12, len(pds), f"{pds} should be 7")
237+
self.assertEqual(13, len(pds), f"{pds} should be 7")
232238
self.assertEqual("bar", pds[0].name)
233239
self.assertFalse(pds[0].is_containment)
234240
self.assertEqual("cont_fwd", pds[1].name)
235241
self.assertTrue(pds[1].is_containment)
236-
self.assertEqual(ExtendedNode, pds[1].type)
242+
self.assertEqual(ForwardReferencedNode, pds[1].type)
237243
self.assertEqual("cont_ref", pds[2].name)
238244
self.assertTrue(pds[2].is_reference)
239-
self.assertEqual(ExtendedNode, pds[2].type)
245+
self.assertEqual(ForwardReferencedNode, pds[2].type)
240246
self.assertEqual("containment", pds[3].name)
241247
self.assertTrue(pds[3].is_containment)
242248
self.assertEqual("foo", pds[4].name)
@@ -246,5 +252,9 @@ def frob_node_2(_: Node):
246252
self.assertEqual("multiple2", pds[6].name)
247253
self.assertTrue(pds[6].is_containment)
248254
self.assertEqual(Multiplicity.MANY, pds[6].multiplicity)
255+
self.assertEqual("multiple_fwd", pds[7].name)
256+
self.assertTrue(pds[7].is_containment)
257+
self.assertEqual(ForwardReferencedNode, pds[7].type)
258+
self.assertEqual(Multiplicity.MANY, pds[7].multiplicity)
249259

250260
self.assertRaises(Exception, lambda: [x for x in InvalidNode.node_properties])

0 commit comments

Comments
 (0)