mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-08 23:04:48 +08:00
add parsing tests for name/call positions
This commit is contained in:
@@ -189,7 +189,6 @@ class Script(object):
|
|||||||
completions.append((c, s))
|
completions.append((c, s))
|
||||||
return completions
|
return completions
|
||||||
|
|
||||||
|
|
||||||
def _prepare_goto(self, goto_path, is_like_search=False):
|
def _prepare_goto(self, goto_path, is_like_search=False):
|
||||||
"""
|
"""
|
||||||
Base for completions/goto. Basically it returns the resolved scopes
|
Base for completions/goto. Basically it returns the resolved scopes
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class Parser(object):
|
|||||||
if self._current[0] in (tokenize.NL, tokenize.NEWLINE):
|
if self._current[0] in (tokenize.NL, tokenize.NEWLINE):
|
||||||
# we added a newline before, so we need to "remove" it again.
|
# we added a newline before, so we need to "remove" it again.
|
||||||
self.end_pos = self._gen.previous[2]
|
self.end_pos = self._gen.previous[2]
|
||||||
if self._current[0] == tokenize.INDENT:
|
elif self._current[0] == tokenize.INDENT:
|
||||||
self.end_pos = self._gen.last_previous[2]
|
self.end_pos = self._gen.last_previous[2]
|
||||||
|
|
||||||
self.start_pos = self.module.start_pos
|
self.start_pos = self.module.start_pos
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from jedi import parsing
|
from jedi.parsing import Parser
|
||||||
from jedi import parsing_representation as pr
|
from jedi import parsing_representation as pr
|
||||||
|
|
||||||
def test_user_statement_on_import():
|
def test_user_statement_on_import():
|
||||||
@@ -7,7 +7,17 @@ def test_user_statement_on_import():
|
|||||||
" time)"
|
" time)"
|
||||||
|
|
||||||
for pos in [(2, 1), (2, 4)]:
|
for pos in [(2, 1), (2, 4)]:
|
||||||
u = parsing.Parser(s, user_position=pos).user_stmt
|
u = Parser(s, user_position=pos).user_stmt
|
||||||
assert isinstance(u, pr.Import)
|
assert isinstance(u, pr.Import)
|
||||||
assert u.defunct == False
|
assert u.defunct == False
|
||||||
assert [str(n) for n in u.get_defined_names()] == ['time']
|
assert [str(n) for n in u.get_defined_names()] == ['time']
|
||||||
|
|
||||||
|
|
||||||
|
def test_name_and_call_positions():
|
||||||
|
stmt = Parser('name\nsomething_else').module.statements[0]
|
||||||
|
call = stmt.get_commands()[0]
|
||||||
|
name = call.name
|
||||||
|
print call, name
|
||||||
|
assert str(name) == 'name'
|
||||||
|
assert name.start_pos == call.start_pos == (1, 0)
|
||||||
|
assert name.end_pos == call.end_pos == (1, 4)
|
||||||
|
|||||||
Reference in New Issue
Block a user