Code Duplication    Length = 24-26 lines in 2 locations

test/test_compat.py 2 locations

@@ 97-122 (lines=26) @@
94
    assert D().ns.footer == 3
95
96
97
def test_abstractclassmethod_basics(abc):
98
    @classmethod
99
    @abstractmethod
100
    def footer(cls):
101
        pass
102
    assert footer.__isabstractmethod__
103
104
    @classmethod
105
    def barter(cls):
106
        pass
107
    assert not getattr(barter, "__isabstractmethod__", False)
108
109
    class C(metaclass=abc.NamespaceableABCMeta):
110
        @classmethod
111
        @abstractmethod
112
        def footer(cls):
113
            return cls.__name__
114
    with pytest.raises(TypeError):
115
        print(C())
116
117
    class D(C):
118
        @classmethod
119
        def footer(cls):
120
            return super().footer()
121
    assert D.footer() == 'D'
122
    assert D().footer() == 'D'
123
124
125
def test_abstractclassmethod_namespaced(abc, namespace):
@@ 52-75 (lines=24) @@
49
    assert not hasattr(barter, "__isabstractmethod__")
50
51
52
def test_abstractproperty_basics(abc):
53
    @property
54
    @abstractmethod
55
    def footer(self):
56
        pass
57
    assert footer.__isabstractmethod__
58
59
    def barter(self):
60
        pass
61
    assert not getattr(barter, "__isabstractmethod__", False)
62
63
    class C(metaclass=abc.NamespaceableABCMeta):
64
        @property
65
        @abstractmethod
66
        def footer(self):
67
            return 3
68
    with pytest.raises(TypeError):
69
        print(C())
70
71
    class D(C):
72
        @C.footer.getter
73
        def footer(self):
74
            return super().footer
75
    assert D().footer == 3
76
77
78
def test_abstractproperty_namespaced(abc, namespace):