summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_fstring.py
diff options
context:
space:
mode:
authorEric V. Smith <eric@trueblade.com>2016-02-05 23:23:08 (GMT)
committerEric V. Smith <eric@trueblade.com>2016-02-05 23:23:08 (GMT)
commit135d5f49f6da605bb1073f939e826e352a2d655f (patch)
tree28bc42218ba2447d4b8b078f47fb16274e0bf751 /Lib/test/test_fstring.py
parenta3643c280f7ed819d2caaa52cb0094a8f2267000 (diff)
downloadcpython-135d5f49f6da605bb1073f939e826e352a2d655f.zip
cpython-135d5f49f6da605bb1073f939e826e352a2d655f.tar.gz
cpython-135d5f49f6da605bb1073f939e826e352a2d655f.tar.bz2
Fix issue 26287: While handling FORMAT_VALUE opcode, the top of stack was being corrupted if an error occurred in PyObject_Format().
Diffstat (limited to 'Lib/test/test_fstring.py')
-rw-r--r--Lib/test/test_fstring.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py
index d6f781c..a82dedf 100644
--- a/Lib/test/test_fstring.py
+++ b/Lib/test/test_fstring.py
@@ -692,6 +692,17 @@ f'{a * x()}'"""
r"f'{a(4]}'",
])
+ def test_errors(self):
+ # see issue 26287
+ self.assertAllRaise(TypeError, 'non-empty',
+ [r"f'{(lambda: 0):x}'",
+ r"f'{(0,):x}'",
+ ])
+ self.assertAllRaise(ValueError, 'Unknown format code',
+ [r"f'{1000:j}'",
+ r"f'{1000:j}'",
+ ])
+
def test_loop(self):
for i in range(1000):
self.assertEqual(f'i:{i}', 'i:' + str(i))