diff --git a/tests/test_parse.py b/tests/test_parse.py index 1edcde6..36c17a6 100644 --- a/tests/test_parse.py +++ b/tests/test_parse.py @@ -242,17 +242,20 @@ else: curr_column += len(new_code) code += new_code - return SampleSoup(all_tokens, code) + all_lines = code.split("\n") + eof = SampleToken(None, "EOF", None) + eof.location = parse.ParseLocation(len(all_lines), len(all_lines[-1]), "") + return SampleSoup(all_tokens + [eof], code) # Test that we can lex tokens correctly @given(draw_token_soup()) def test_lexer_soup(soup): tokens = safe_tokenize(soup.code, "") - EOF = len(tokens) - 1 in_pos = 0 out_pos = 0 - while out_pos < EOF and in_pos < len(soup.tokens): + assert len(tokens) <= len(soup.tokens) + while out_pos < len(tokens): if not soup.tokens[in_pos].type: in_pos += 1 else: @@ -263,11 +266,6 @@ assert tokens[out_pos].location.column == soup.tokens[in_pos].location.column in_pos += 1 out_pos += 1 - all_lines = soup.code.split("\n") - assert tokens[out_pos].type == "EOF" - assert tokens[out_pos].location.file == "" - assert tokens[out_pos].location.line == len(all_lines) - assert tokens[out_pos].location.column == len(all_lines[-1]) # General fuzz test, make sure the parser doesn't fall apart and spew