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)
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"]))