[Python-checkins] bpo-39663: IDLE: Add additional tests for pyparse (GH-18536)

Cheryl Sabella webhook-mailer at python.org
Mon Feb 17 21:48:14 EST 2020


https://github.com/python/cpython/commit/ffda25f6b825f3dee493b6f0746266a4dd6989f0
commit: ffda25f6b825f3dee493b6f0746266a4dd6989f0
branch: master
author: Cheryl Sabella <cheryl.sabella at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020年02月17日T21:47:52-05:00
summary:
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 at udel.edu>
files:
A Misc/NEWS.d/next/IDLE/2020-02-17-21-09-03.bpo-39663.wexcsH.rst
M Lib/idlelib/NEWS.txt
M Lib/idlelib/idle_test/test_pyparse.py
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 838120964b2d8..021e1f7710e0f 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,8 @@ Released on 2020年10月05日?
 ======================================
 
 
+bpo-39663: Add tests for pyparse find_good_parse_start().
+
 bpo-39600: Remove duplicate font names from configuration list.
 
 bpo-38792: Close a shell calltip if a :exc:`KeyboardInterrupt`
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index a2b13c38d80d5..f21baf7534420 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -58,6 +58,18 @@ def test_find_good_parse_start(self):
 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 @@ def test_find_good_parse_start(self):
 
 # 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 @@ def test_find_good_parse_start(self):
 ' 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
diff --git a/Misc/NEWS.d/next/IDLE/2020-02-17-21-09-03.bpo-39663.wexcsH.rst b/Misc/NEWS.d/next/IDLE/2020-02-17-21-09-03.bpo-39663.wexcsH.rst
new file mode 100644
index 0000000000000..19e16329ce0a0
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2020-02-17-21-09-03.bpo-39663.wexcsH.rst
@@ -0,0 +1 @@
+Add tests for pyparse find_good_parse_start().


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /