diff --git a/tests/test_parse.py b/tests/test_parse.py index 6446bf1..1e8f0a2 100644 --- a/tests/test_parse.py +++ b/tests/test_parse.py @@ -1,5 +1,5 @@ from hypothesis import given, assume -from hypothesis.strategies import text, booleans, sampled_from, characters +from hypothesis.strategies import text, booleans, sampled_from, characters, lists from src import parse @@ -124,6 +124,20 @@ assert tokens[1].type == "EOF" +# Test that reserved words aren't read without whitespace +@given(lists(sampled_from(reserved_words), min_size=2)) +def test_lexer_conjoined_words(words): + word = "".join(words) + tokenizer = parse.Tokenizer(word, "") + tokens = tokenizer.tokenize() + assert tokens[0].type == "symbol" + assert tokens[0].value == word + assert tokens[0].location.line == 1 + assert tokens[0].location.column == 1 + assert tokens[0].location.file == "" + assert tokens[1].type == "EOF" + + # Test that shebangs are skipped @given(text(alphabet=characters(blacklist_characters="\n"))) def test_lexer_shebang(shebang):