fix a few annoyances to be quicker to develop now (disabled a few tests for now)

This commit is contained in:
Dave Halter
2014-02-13 15:40:51 +01:00
parent 6939e3e18f
commit 040ea2b735
3 changed files with 35 additions and 8 deletions

View File

@@ -49,15 +49,15 @@ from jedi.parser import token as token_pr
SCOPE_CONTENTS = ['asserts', 'subscopes', 'imports', 'statements', 'returns']
class GetCodeState(object):
"""A helper class for passing the state of get_code in a thread-safe
manner"""
__slots__ = ("last_pos")
__slots__ = ("last_pos",)
def __init__(self):
self.last_pos = (0, 0)
class Base(object):
"""
This is just here to have an isinstance check, which is also used on
@@ -1474,3 +1474,19 @@ class ListComprehension(Base):
statements = self.stmt, self.middle, self.input
code = [s.get_code().replace('\n', '') for s in statements]
return "%s for %s in %s" % tuple(code)
class Operator():
__slots__ = ('operator', '_line', '_column')
def __init__(self, operator, start_pos):
self.operator = operator
self._line = start_pos[0]
self._column = start_pos[1]
@property
def start_pos(self):
return self._column, self._line
def get_code(self):
return self.operator

View File

@@ -76,7 +76,7 @@ class Token(object):
# Backward compatibility
def __getitem__(self, key):
# Builds the same structure as tuple used to have
if key == 0:
if key == 0:
return self.token_type
elif key == 1:
return self.token

View File

@@ -1,6 +1,9 @@
import jedi.parser as parser
import difflib
import pytest
import jedi.parser as parser
code_basic_features = '''
"""A mod docstring"""
@@ -36,11 +39,19 @@ def diff_code_assert(a, b, n=4):
pass
@pytest.mark.skipif('True', reason='Refactor a few parser things first.')
def test_basic_parsing():
"""Validate the parsing features"""
prs = parser.Parser(code_basic_features)
# diff_code_assert(
# code_basic_features,
# prs.top_module.get_code2()
# )
diff_code_assert(
code_basic_features,
prs.module.get_code2()
)
@pytest.mark.skipif('True', reason='Not yet working.')
def test_operators():
src = '5 * 3'
prs = parser.Parser(src)
diff_code_assert(src, prs.module.get_code())