MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_abstractmethod_integration

Method test_abstractmethod_integration

Lib/test/test_abc.py:172–198  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

170
171 @unittest.expectedFailure # TODO: RUSTPYTHON; AssertionError: False is not true
172 def test_abstractmethod_integration(self):
173 for abstractthing in [abc.abstractmethod, abc.abstractproperty,
174 abc.abstractclassmethod,
175 abc.abstractstaticmethod]:
176 class C(metaclass=abc_ABCMeta):
177 @abstractthing
178 def foo(self): pass # abstract
179 def bar(self): pass # concrete
180 self.assertEqual(C.__abstractmethods__, {"foo"})
181 self.assertRaises(TypeError, C) # because foo is abstract
182 self.assertTrue(isabstract(C))
183 class D(C):
184 def bar(self): pass # concrete override of concrete
185 self.assertEqual(D.__abstractmethods__, {"foo"})
186 self.assertRaises(TypeError, D) # because foo is still abstract
187 self.assertTrue(isabstract(D))
188 class E(D):
189 def foo(self): pass
190 self.assertEqual(E.__abstractmethods__, set())
191 E() # now foo is concrete, too
192 self.assertFalse(isabstract(E))
193 class F(E):
194 @abstractthing
195 def bar(self): pass # abstract override of concrete
196 self.assertEqual(F.__abstractmethods__, {"bar"})
197 self.assertRaises(TypeError, F) # because bar is abstract now
198 self.assertTrue(isabstract(F))
199
200 def test_descriptors_with_abstractmethod(self):
201 class C(metaclass=abc_ABCMeta):

Callers

nothing calls this directly

Calls 7

isabstractFunction · 0.90
setFunction · 0.85
assertTrueMethod · 0.80
assertFalseMethod · 0.80
EClass · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected