diff options
author | Raymond Hettinger <python@rcn.com> | 2015-05-17 21:45:58 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2015-05-17 21:45:58 (GMT) |
commit | 610a51f364f6cb5ffb5167d9bf4dcecc1815107c (patch) | |
tree | 1544fadc8ed997411f3346015921e1a48a467e2f /Lib | |
parent | 6558190e52748428b2db1420bf029b0745e2743a (diff) | |
download | cpython-610a51f364f6cb5ffb5167d9bf4dcecc1815107c.zip cpython-610a51f364f6cb5ffb5167d9bf4dcecc1815107c.tar.gz cpython-610a51f364f6cb5ffb5167d9bf4dcecc1815107c.tar.bz2 |
Issue #23757: Only call the concrete list API for exact lists.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/seq_tests.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/seq_tests.py b/Lib/test/seq_tests.py index 9834af1..2416249 100644 --- a/Lib/test/seq_tests.py +++ b/Lib/test/seq_tests.py @@ -85,6 +85,14 @@ def itermulti(seqn): 'Test multiple tiers of iterators' return chain(map(lambda x:x, iterfunc(IterGen(Sequence(seqn))))) +class LyingTuple(tuple): + def __iter__(self): + yield 1 + +class LyingList(list): + def __iter__(self): + yield 1 + class CommonTest(unittest.TestCase): # The type to be tested type2test = None @@ -131,6 +139,10 @@ class CommonTest(unittest.TestCase): self.assertRaises(TypeError, self.type2test, IterNoNext(s)) self.assertRaises(ZeroDivisionError, self.type2test, IterGenExc(s)) + # Issue #23757 + self.assertEqual(self.type2test(LyingTuple((2,))), self.type2test((1,))) + self.assertEqual(self.type2test(LyingList([2])), self.type2test([1])) + def test_truth(self): self.assertFalse(self.type2test()) self.assertTrue(self.type2test([42])) |