MCPcopy Index your code
hub / github.com/python/cpython / test_slots_special

Method test_slots_special

Lib/test/test_descr.py:1335–1372  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1333 self.assertEqual(x, (1, 2, 3))
1334
1335 def test_slots_special(self):
1336 # Testing __dict__ and __weakref__ in __slots__...
1337 class D(object):
1338 __slots__ = ["__dict__"]
1339 a = D()
1340 self.assertHasAttr(a, "__dict__")
1341 self.assertNotHasAttr(a, "__weakref__")
1342 a.foo = 42
1343 self.assertEqual(a.__dict__, {"foo": 42})
1344 with self.assertRaises(TypeError):
1345 weakref.ref(a)
1346
1347 class W(object):
1348 __slots__ = ["__weakref__"]
1349 a = W()
1350 self.assertHasAttr(a, "__weakref__")
1351 self.assertNotHasAttr(a, "__dict__")
1352 with self.assertRaises(AttributeError):
1353 a.foo = 42
1354 self.assertIs(weakref.ref(a)(), a)
1355
1356 class C1(W, D):
1357 __slots__ = []
1358 a = C1()
1359 self.assertHasAttr(a, "__dict__")
1360 self.assertHasAttr(a, "__weakref__")
1361 a.foo = 42
1362 self.assertEqual(a.__dict__, {"foo": 42})
1363 self.assertIs(weakref.ref(a)(), a)
1364
1365 class C2(D, W):
1366 __slots__ = []
1367 a = C2()
1368 self.assertHasAttr(a, "__dict__")
1369 self.assertHasAttr(a, "__weakref__")
1370 a.foo = 42
1371 self.assertEqual(a.__dict__, {"foo": 42})
1372 self.assertIs(weakref.ref(a)(), a)
1373
1374 @unittest.skipIf(_testcapi is None, 'need the _testcapi module')
1375 def test_slots_special_before_items(self):

Callers

nothing calls this directly

Calls 9

assertHasAttrMethod · 0.80
assertNotHasAttrMethod · 0.80
DClass · 0.70
WClass · 0.70
C1Class · 0.70
C2Class · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45
assertIsMethod · 0.45

Tested by

no test coverage detected