예제 #1
0
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
예제 #2
0
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
예제 #3
0
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='-')
예제 #4
0
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)