diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2020-02-18 03:05:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-18 03:05:39 (GMT) |
commit | 7fd752c1bc637aeca2bd122d07c0ebc379d0d8ca (patch) | |
tree | 29d78d5a279c07751aece5406ff18c640f77bf56 /Lib/idlelib/idle_test/test_pyparse.py | |
parent | f64abd10563c25a94011f9e3335fd8a1cf47c205 (diff) | |
download | cpython-7fd752c1bc637aeca2bd122d07c0ebc379d0d8ca.zip cpython-7fd752c1bc637aeca2bd122d07c0ebc379d0d8ca.tar.gz cpython-7fd752c1bc637aeca2bd122d07c0ebc379d0d8ca.tar.bz2 |
bpo-39663: IDLE: Add additional tests for pyparse (GH-18536)
Test when find_good_parse_start should return 0.
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
(cherry picked from commit ffda25f6b825f3dee493b6f0746266a4dd6989f0)
Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
Diffstat (limited to 'Lib/idlelib/idle_test/test_pyparse.py')
-rw-r--r-- | Lib/idlelib/idle_test/test_pyparse.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py index a2b13c3..f21baf7 100644 --- a/Lib/idlelib/idle_test/test_pyparse.py +++ b/Lib/idlelib/idle_test/test_pyparse.py @@ -58,6 +58,18 @@ class PyParseTest(unittest.TestCase): p = self.parser setcode = p.set_code start = p.find_good_parse_start + def char_in_string_false(index): return False + + # First line starts with 'def' and ends with ':', then 0 is the pos. + setcode('def spam():\n') + eq(start(char_in_string_false), 0) + + # First line begins with a keyword in the list and ends + # with an open brace, then 0 is the pos. This is how + # hyperparser calls this function as the newline is not added + # in the editor, but rather on the call to setcode. + setcode('class spam( ' + ' \n') + eq(start(char_in_string_false), 0) # Split def across lines. setcode('"""This is a module docstring"""\n' @@ -79,7 +91,7 @@ class PyParseTest(unittest.TestCase): # Make all text look like it's not in a string. This means that it # found a good start position. - eq(start(is_char_in_string=lambda index: False), 44) + eq(start(char_in_string_false), 44) # If the beginning of the def line is not in a string, then it # returns that as the index. @@ -98,7 +110,7 @@ class PyParseTest(unittest.TestCase): ' def __init__(self, a, b=True):\n' ' pass\n' ) - eq(start(is_char_in_string=lambda index: False), 44) + eq(start(char_in_string_false), 44) eq(start(is_char_in_string=lambda index: index > 44), 44) eq(start(is_char_in_string=lambda index: index >= 44), 33) # When the def line isn't split, this returns which doesn't match the |