Removed Scope.statements from the parser tree.

This commit is contained in:
Dave Halter
2017-04-28 18:18:37 +02:00
parent 307adc2026
commit eaa5100372
5 changed files with 21 additions and 14 deletions

View File

@@ -112,7 +112,7 @@ def test_carriage_return_statements():
# this is a namespace package
''')
source = source.replace('\n', '\r\n')
stmt = parse(source).statements[0]
stmt = parse(source).children[0]
assert '#' not in stmt.get_code()
@@ -120,7 +120,9 @@ def test_incomplete_list_comprehension():
""" Shouldn't raise an error, same bug as #418. """
# With the old parser this actually returned a statement. With the new
# parser only valid statements generate one.
assert parse('(1 for def').statements == []
children = parse('(1 for def').children
assert [c.type for c in children] == \
['error_node', 'error_node', 'newline', 'endmarker']
def test_hex_values_in_docstring():

View File

@@ -23,8 +23,9 @@ class TokenTest(unittest.TestCase):
def testit():
a = "huhu"
'''))
tok = parsed.subscopes[0].statements[0].children[2]
assert tok.end_pos == (3, 14)
simple_stmt = parsed.subscopes[0].get_suite().children[-1]
string = simple_stmt.children[0].get_rhs()
assert string.end_pos == (3, 14)
def test_end_pos_multi_line(self):
parsed = parse(dedent('''
@@ -32,8 +33,9 @@ class TokenTest(unittest.TestCase):
a = """huhu
asdfasdf""" + "h"
'''))
tok = parsed.subscopes[0].statements[0].children[2].children[0]
assert tok.end_pos == (4, 11)
expr_stmt = parsed.subscopes[0].get_suite().children[1].children[0]
string_leaf = expr_stmt.get_rhs().children[0]
assert string_leaf.end_pos == (4, 11)
def test_simple_no_whitespace(self):
# Test a simple one line string, no preceding whitespace