def test_eq(): a1 = Attribute(Any) a1.name = 'a' a2 = Attribute(Any) a2.name = 'a' b = Attribute(Any) b.name = 'b' assert a1 == a2 assert hash(a1) == hash(a2) assert a1 != b assert hash(a1) != hash(b) # noinspection PyTypeChecker assert a1.__eq__('a') is NotImplemented
def test_name(): name = 'a' a = Attribute(Any) a.name = name assert a.name == name assert a.private_name == '.' + name with raises(TypeError): Attribute(Any).name = 123
def test_case_insensitive(): a = Attribute(Any) a.name = 'some_name' assert 'some-name' in set(a.ciname.cases()) a.case_insensitive = False assert a.ciname is None with raises(TypeError): # noinspection PyTypeChecker Attribute(str, case_insensitive='-')
def test_ci_name(name: str, ci_names: List[str]): a = Attribute(Any) a.name = name cases = set(a.ciname.cases()) assert a.name == name assert all(n in cases for n in ci_names)