@@ 172-188 (lines=17) @@ | ||
169 | assert D().footer() == 4 |
|
170 | ||
171 | ||
172 | def test_abstractstaticmethod_namespaced(abc, namespace): |
|
173 | class C(metaclass=abc.NamespaceableABCMeta): |
|
174 | with namespace() as ns: |
|
175 | @staticmethod |
|
176 | @abstractmethod |
|
177 | def footer(): |
|
178 | return 3 |
|
179 | with pytest.raises(TypeError): |
|
180 | print(C()) |
|
181 | ||
182 | class D(C): |
|
183 | with namespace() as ns: |
|
184 | @staticmethod |
|
185 | def footer(): |
|
186 | return 4 |
|
187 | assert D.ns.footer() == 4 |
|
188 | assert D().ns.footer() == 4 |
|
189 | ||
190 | ||
191 | def test_abstractmethod_integration(abc): |
|
@@ 125-141 (lines=17) @@ | ||
122 | assert D().footer() == 'D' |
|
123 | ||
124 | ||
125 | def test_abstractclassmethod_namespaced(abc, namespace): |
|
126 | class C(metaclass=abc.NamespaceableABCMeta): |
|
127 | with namespace() as ns: |
|
128 | @classmethod |
|
129 | @abstractmethod |
|
130 | def footer(cls): |
|
131 | return cls.__name__ |
|
132 | with pytest.raises(TypeError): |
|
133 | print(C()) |
|
134 | ||
135 | class D(C): |
|
136 | with namespace() as ns: |
|
137 | @classmethod |
|
138 | def footer(cls): |
|
139 | return super().ns.footer() |
|
140 | assert D.ns.footer() == 'D' |
|
141 | assert D().ns.footer() == 'D' |
|
142 | ||
143 | ||
144 | def test_abstractstaticmethod_basics(abc): |