Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
    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))
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
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()