◐ Shell
clean mode source ↗

bpo-44891: Tests `id` preserving on `* 1` for `str` and `bytes` by sobolevn · Pull Request #27745 · python/cpython

Expand Up @@ -1169,6 +1169,28 @@ class BufferBlocked(bytearray): self.assertEqual(bytes(ba), b'ab') self.assertRaises(TypeError, bytes, bb)
def test_repeat_id_preserving(self): a = b'123abc1@' b = b'456zyx-+' self.assertEqual(id(a), id(a)) self.assertNotEqual(id(a), id(b)) self.assertNotEqual(id(a), id(a * -4)) self.assertNotEqual(id(a), id(a * 0)) self.assertEqual(id(a), id(a * 1)) self.assertEqual(id(a), id(1 * a)) self.assertNotEqual(id(a), id(a * 2))
class SubBytes(bytes): pass
s = SubBytes(b'qwerty()') self.assertEqual(id(s), id(s)) self.assertNotEqual(id(s), id(s * -4)) self.assertNotEqual(id(s), id(s * 0)) self.assertNotEqual(id(s), id(s * 1)) self.assertNotEqual(id(s), id(1 * s)) self.assertNotEqual(id(s), id(s * 2))

class ByteArrayTest(BaseBytesTest, unittest.TestCase): type2test = bytearray Expand Down