mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
an iterable of integers. Now only strings and byte-like objects are accepted.
This commit is contained in:
commit
f95de0e8cc
6 changed files with 61 additions and 1 deletions
|
@ -626,6 +626,22 @@ class CompileTestCase(unittest.TestCase):
|
|||
code2 = parser.compilest(st)
|
||||
self.assertEqual(eval(code2), -3)
|
||||
|
||||
def test_compile_filename(self):
|
||||
st = parser.expr('a + 5')
|
||||
code = parser.compilest(st)
|
||||
self.assertEqual(code.co_filename, '<syntax-tree>')
|
||||
code = st.compile()
|
||||
self.assertEqual(code.co_filename, '<syntax-tree>')
|
||||
for filename in ('file.py', b'file.py',
|
||||
bytearray(b'file.py'), memoryview(b'file.py')):
|
||||
code = parser.compilest(st, filename)
|
||||
self.assertEqual(code.co_filename, 'file.py')
|
||||
code = st.compile(filename)
|
||||
self.assertEqual(code.co_filename, 'file.py')
|
||||
self.assertRaises(TypeError, parser.compilest, st, list(b'file.py'))
|
||||
self.assertRaises(TypeError, st.compile, list(b'file.py'))
|
||||
|
||||
|
||||
class ParserStackLimitTestCase(unittest.TestCase):
|
||||
"""try to push the parser to/over its limits.
|
||||
see http://bugs.python.org/issue1881 for a discussion
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue