mirror of
https://github.com/python/cpython.git
synced 2025-08-24 10:45:53 +00:00
Issue #21686: add unittest for idlelib.HyperParser. Original patch by Saimadhav
Heblikar. Correct a minor 3.x bug in HyperParser discovered by testing.
This commit is contained in:
parent
bc434e2052
commit
10b1c7cc8f
2 changed files with 201 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
|||
"""Provide advanced parsing abilities for the ParenMatch and other extensions.
|
||||
"""Provide advanced parsing abilities for ParenMatch and other extensions.
|
||||
|
||||
HyperParser uses PyParser. PyParser mostly gives information on the
|
||||
proper indentation of code. HyperParser gives additional information on
|
||||
|
@ -88,7 +88,7 @@ class HyperParser:
|
|||
self.indexbracket += 1
|
||||
|
||||
def is_in_string(self):
|
||||
"""Is the index given to the HyperParser is in a string?"""
|
||||
"""Is the index given to the HyperParser in a string?"""
|
||||
# The bracket to which we belong should be an opener.
|
||||
# If it's an opener, it has to have a character.
|
||||
return (self.isopener[self.indexbracket] and
|
||||
|
@ -96,7 +96,7 @@ class HyperParser:
|
|||
in ('"', "'"))
|
||||
|
||||
def is_in_code(self):
|
||||
"""Is the index given to the HyperParser is in a normal code?"""
|
||||
"""Is the index given to the HyperParser in normal code?"""
|
||||
return (not self.isopener[self.indexbracket] or
|
||||
self.rawtext[self.bracketing[self.indexbracket][0]]
|
||||
not in ('#', '"', "'"))
|
||||
|
@ -158,7 +158,8 @@ class HyperParser:
|
|||
while i > limit and str[i-1] in self._id_chars:
|
||||
i -= 1
|
||||
if (i < pos and (str[i] not in self._id_first_chars or
|
||||
keyword.iskeyword(str[i:pos]))):
|
||||
(keyword.iskeyword(str[i:pos]) and
|
||||
str[i:pos] not in {'None', 'False', 'True'}))):
|
||||
i = pos
|
||||
return pos - i
|
||||
|
||||
|
@ -248,3 +249,8 @@ class HyperParser:
|
|||
break
|
||||
|
||||
return rawtext[last_identifier_pos:self.indexinrawtext]
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import unittest
|
||||
unittest.main('idlelib.idle_test.test_hyperparser', verbosity=2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue