mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
fix several compile() issues by translating newlines in the tokenizer
This commit is contained in:
parent
c4cd6d3765
commit
e36199b49d
8 changed files with 96 additions and 30 deletions
|
@ -295,10 +295,6 @@ class CodeopTests(unittest.TestCase):
|
|||
self.assertNotEquals(compile_command("a = 1\n", "abc").co_filename,
|
||||
compile("a = 1\n", "def", 'single').co_filename)
|
||||
|
||||
def test_no_universal_newlines(self):
|
||||
code = compile_command("'\rfoo\r'", symbol='eval')
|
||||
self.assertEqual(eval(code), '\rfoo\r')
|
||||
|
||||
|
||||
def test_main():
|
||||
run_unittest(CodeopTests)
|
||||
|
|
|
@ -5,6 +5,19 @@ from test import test_support
|
|||
|
||||
class TestSpecifics(unittest.TestCase):
|
||||
|
||||
def test_no_ending_newline(self):
|
||||
compile("hi", "<test>", "exec")
|
||||
compile("hi\r", "<test>", "exec")
|
||||
|
||||
def test_empty(self):
|
||||
compile("", "<test>", "exec")
|
||||
|
||||
def test_other_newlines(self):
|
||||
compile("\r\n", "<test>", "exec")
|
||||
compile("\r", "<test>", "exec")
|
||||
compile("hi\r\nstuff\r\ndef f():\n pass\r", "<test>", "exec")
|
||||
compile("this_is\rreally_old_mac\rdef f():\n pass", "<test>", "exec")
|
||||
|
||||
def test_debug_assignment(self):
|
||||
# catch assignments to __debug__
|
||||
self.assertRaises(SyntaxError, compile, '__debug__ = 1', '?', 'single')
|
||||
|
|
|
@ -243,9 +243,9 @@ class RoundtripLegalSyntaxTestCase(unittest.TestCase):
|
|||
(14, '+', 2, 13),
|
||||
(2, '1', 2, 15),
|
||||
(4, '', 2, 16),
|
||||
(6, '', 2, -1),
|
||||
(4, '', 2, -1),
|
||||
(0, '', 2, -1)],
|
||||
(6, '', 3, -1),
|
||||
(4, '', 3, -1),
|
||||
(0, '', 3, -1)],
|
||||
terminals)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue