Exemple #1
0
    def test_attribute_display_type(self):
        parents = []
        type_foo_bar = AttrTypeFactory.create(name="foo_bar")

        attr = AttrFactory.create(name="foo",
                                  default="foo",
                                  types=[type_foo_bar])

        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual("FooBar", actual)

        attr.default = None
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual("Optional[FooBar]", actual)

        parents = ["Parent"]
        attr.types[0].self_ref = True
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual('Optional["FooBar"]', actual)

        attr.types[0].forward_ref = True
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual('Optional["Parent.FooBar"]', actual)

        parents = ["A", "Parent"]
        attr.restrictions.max_occurs = 2
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual('List["A.Parent.FooBar"]', actual)

        attr.types[0].alias = "Boss:Life"
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual('List["A.Parent.BossLife"]', actual)

        attr.types = [
            AttrTypeFactory.create(name="thug:life",
                                   alias="Boss:Life",
                                   forward_ref=True),
            AttrTypeFactory.xs_int(),
        ]
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual('List[Union["A.Parent.BossLife", int]]', actual)

        attr.restrictions.max_occurs = 1
        attr.types = [AttrTypeFactory.xs_qmap()]
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual("Dict[QName, str]", actual)

        attr.types = [
            AttrTypeFactory.xs_int(),
            AttrTypeFactory.xs_positive_int()
        ]
        actual = generator.attribute_display_type(attr, parents)
        self.assertEqual("Optional[int]", actual)
Exemple #2
0
 def test_field_type_with_native_type(self):
     attr = AttrFactory.create(
         types=[AttrTypeFactory.xs_int(), AttrTypeFactory.xs_positive_int()]
     )
     self.assertEqual("Optional[int]", self.filters.field_type(attr, ["a", "b"]))