diff options
author | INADA Naoki <songofacandy@gmail.com> | 2017-01-06 08:32:01 (GMT) |
---|---|---|
committer | INADA Naoki <songofacandy@gmail.com> | 2017-01-06 08:32:01 (GMT) |
commit | a634e23209e90fd516fae1b4a303d57fdb1b9917 (patch) | |
tree | 33c88b1473930f36920e7d94f78fe39872b52f93 /Lib | |
parent | a251fb02f4400a2ea32677110e430742fd1444bc (diff) | |
download | cpython-a634e23209e90fd516fae1b4a303d57fdb1b9917.zip cpython-a634e23209e90fd516fae1b4a303d57fdb1b9917.tar.gz cpython-a634e23209e90fd516fae1b4a303d57fdb1b9917.tar.bz2 |
Issue #29159: Fix regression in bytes(x) when x.__index__() raises Exception.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_bytes.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index b396a76..a103a7d 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -4,6 +4,7 @@ XXX This is a mess. Common tests should be unified with string_tests.py (and the latter should be modernized). """ +import array import os import re import sys @@ -81,6 +82,18 @@ class BaseBytesTest: self.assertRaises(ValueError, self.type2test, [Indexable(-1)]) self.assertRaises(ValueError, self.type2test, [Indexable(256)]) + def test_from_buffer(self): + a = self.type2test(array.array('B', [1, 2, 3])) + self.assertEqual(a, b"\x01\x02\x03") + + # http://bugs.python.org/issue29159 + # Fallback when __index__ raises exception other than OverflowError + class B(bytes): + def __index__(self): + raise TypeError + + self.assertEqual(self.type2test(B(b"foobar")), b"foobar") + def test_from_ssize(self): self.assertEqual(self.type2test(0), b'') self.assertEqual(self.type2test(1), b'\x00') |