summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_bytes.py
diff options
context:
space:
mode:
authorNikita Sobolev <mail@sobolevn.me>2021-08-13 10:36:22 (GMT)
committerGitHub <noreply@github.com>2021-08-13 10:36:22 (GMT)
commita2ce538e16d5e3a6168704366bdd7a8c5af29881 (patch)
treee8a7984f05fcf962e9bb2a66deba562ff4896de8 /Lib/test/test_bytes.py
parent7bf28cbb4bf37fa6bdfc2d3f8a3939066b3f8f22 (diff)
downloadcpython-a2ce538e16d5e3a6168704366bdd7a8c5af29881.zip
cpython-a2ce538e16d5e3a6168704366bdd7a8c5af29881.tar.gz
cpython-a2ce538e16d5e3a6168704366bdd7a8c5af29881.tar.bz2
bpo-44891: Tests `id` preserving on `* 1` for `str` and `bytes` (GH-27745)
Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Diffstat (limited to 'Lib/test/test_bytes.py')
-rw-r--r--Lib/test/test_bytes.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py
index 381030f..13ad238 100644
--- a/Lib/test/test_bytes.py
+++ b/Lib/test/test_bytes.py
@@ -1169,6 +1169,28 @@ class BytesTest(BaseBytesTest, unittest.TestCase):
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