def test_that_it_works(self) -> None: another_cls = mapry.Class(name='another_cls', plural='', description='', ref='') embed = mapry.Embed(name='some_embed', description='', ref='') embed.properties = { "another_ref": dummy_property(name='another_ref', a_type=another_cls, composite=embed) } cls = mapry.Class(name='some_class', plural='', description='', ref='') cls.properties = { "some_primitive": dummy_property(name="some_primitive", a_type=mapry.Path(), composite=cls), "some_ref": dummy_property(name="some_ref", a_type=cls, composite=cls), "some_embed": dummy_property(name="some_embed", a_type=embed, composite=cls) } self.assertListEqual([another_cls, cls], mapry.references(a_type=cls))
def test_self_referencing_class(self) -> None: cls = mapry.Class(name='some_class', plural='', description='', ref='') cls.properties = { "some_ref": dummy_property(name="some_ref", a_type=cls, composite=cls) } self.assertListEqual([cls], mapry.references(a_type=cls))
def test_optional(self) -> None: cls = mapry.Class(name='some_class', plural='', description='', ref='') cls.properties = { "bff": mapry.Property(ref='', name='friends', a_type=cls, description='', json='', optional=True, composite=cls) } self.assertListEqual([cls], mapry.references(a_type=cls))
def _parse_definitions(graph: mapry.Graph) -> str: """ Generate the code that defines the parsing functions of Jsoncpp. :param graph: mapry definition of the object graph :return: generated code """ nongraph_composites = [] # type: List[Union[mapry.Embed, mapry.Class]] nongraph_composites.extend(graph.embeds.values()) nongraph_composites.extend(graph.classes.values()) # yapf: disable references = { composite: mapry.references(a_type=composite) for composite in nongraph_composites} # yapf: enable return _PARSE_JSONCPP_TPL.render( graph=graph, nongraph_composites=nongraph_composites, references=references).rstrip()