(self)
| 373 | A.register, 4) |
| 374 | |
| 375 | def test_registration_transitiveness(self): |
| 376 | class A(metaclass=abc_ABCMeta): |
| 377 | pass |
| 378 | self.assertIsSubclass(A, A) |
| 379 | self.assertIsSubclass(A, (A,)) |
| 380 | class B(metaclass=abc_ABCMeta): |
| 381 | pass |
| 382 | self.assertNotIsSubclass(A, B) |
| 383 | self.assertNotIsSubclass(A, (B,)) |
| 384 | self.assertNotIsSubclass(B, A) |
| 385 | self.assertNotIsSubclass(B, (A,)) |
| 386 | class C(metaclass=abc_ABCMeta): |
| 387 | pass |
| 388 | A.register(B) |
| 389 | class B1(B): |
| 390 | pass |
| 391 | self.assertIsSubclass(B1, A) |
| 392 | self.assertIsSubclass(B1, (A,)) |
| 393 | class C1(C): |
| 394 | pass |
| 395 | B1.register(C1) |
| 396 | self.assertNotIsSubclass(C, B) |
| 397 | self.assertNotIsSubclass(C, (B,)) |
| 398 | self.assertNotIsSubclass(C, B1) |
| 399 | self.assertNotIsSubclass(C, (B1,)) |
| 400 | self.assertIsSubclass(C1, A) |
| 401 | self.assertIsSubclass(C1, (A,)) |
| 402 | self.assertIsSubclass(C1, B) |
| 403 | self.assertIsSubclass(C1, (B,)) |
| 404 | self.assertIsSubclass(C1, B1) |
| 405 | self.assertIsSubclass(C1, (B1,)) |
| 406 | C1.register(int) |
| 407 | class MyInt(int): |
| 408 | pass |
| 409 | self.assertIsSubclass(MyInt, A) |
| 410 | self.assertIsSubclass(MyInt, (A,)) |
| 411 | self.assertIsInstance(42, A) |
| 412 | self.assertIsInstance(42, (A,)) |
| 413 | |
| 414 | def test_issubclass_bad_arguments(self): |
| 415 | class A(metaclass=abc_ABCMeta): |
nothing calls this directly
no test coverage detected