(self)
| 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): |
nothing calls this directly
no test coverage detected