(x, C)
| 3338 | x.__class__ = cls |
| 3339 | self.assertIs(x.__class__, cls) |
| 3340 | def cant(x, C): |
| 3341 | try: |
| 3342 | x.__class__ = C |
| 3343 | except TypeError: |
| 3344 | pass |
| 3345 | else: |
| 3346 | self.fail("shouldn't allow %r.__class__ = %r" % (x, C)) |
| 3347 | try: |
| 3348 | delattr(x, "__class__") |
| 3349 | except (TypeError, AttributeError): |
| 3350 | pass |
| 3351 | else: |
| 3352 | self.fail("shouldn't allow del %r.__class__" % x) |
| 3353 | cant(C(), list) |
| 3354 | cant(list(), C) |
| 3355 | cant(C(), 1) |