add parsing tests for name/call positions

This commit is contained in:
David Halter
2013-08-16 21:34:58 +04:30
parent 0268109d1d
commit cb21de45f1
3 changed files with 13 additions and 4 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)