diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-11-25 15:53:19 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-11-25 15:53:19 +0200 |
commit | bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7 (patch) | |
tree | 552f1bdf983de7b8957bb65597c691c932d063db /Lib/test/test_unicode.py | |
parent | dde0815c359fc321b0e7a94f885132e2e77534a1 (diff) | |
parent | f9afda57ad7d0394531982b2c9de8301c5a54e45 (diff) | |
download | cpython-git-bb6e4a0b31402f2e242f8f4be9a26e07d3dcc1b7.tar.gz |
Issue #24731: Fixed crash on converting objects with special methods
__bytes__, __trunc__, and __float__ returning instances of subclasses of
bytes, int, and float to subclasses of bytes, int, and float correspondingly.
Diffstat (limited to 'Lib/test/test_unicode.py')
-rw-r--r-- | Lib/test/test_unicode.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 56a60df007..ce8df40d16 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -43,6 +43,9 @@ def duplicate_string(text): """ return text.encode().decode() +class StrSubclass(str): + pass + class UnicodeTest(string_tests.CommonTest, string_tests.MixinStrUnicodeUserStringTest, string_tests.MixinStrUnicodeTest, @@ -1441,11 +1444,8 @@ class UnicodeTest(string_tests.CommonTest, 'unicode remains unicode' ) - class UnicodeSubclass(str): - pass - for text in ('ascii', '\xe9', '\u20ac', '\U0010FFFF'): - subclass = UnicodeSubclass(text) + subclass = StrSubclass(text) self.assertEqual(str(subclass), text) self.assertEqual(len(subclass), len(text)) if text == 'ascii': @@ -2199,6 +2199,9 @@ class UnicodeTest(string_tests.CommonTest, s = str(StrSubclassToStrSubclass("foo")) self.assertEqual(s, "foofoo") self.assertIs(type(s), StrSubclassToStrSubclass) + s = StrSubclass(StrSubclassToStrSubclass("foo")) + self.assertEqual(s, "foofoo") + self.assertIs(type(s), StrSubclass) def test_unicode_repr(self): class s1: |