from hypothesis import given from hypothesis.strategies import text from src import parse # General fuzz test, make sure the parser doesn't fall apart and spew # uncontrolled errors. @given(text(), text()) def test_parser_fuzz(code, filename): try: tokenizer = parse.Tokenizer(code, filename) tokens = tokenizer.tokenize() parser = parse.Parser(tokens) parser.parse_file() except parse.ParseError: pass # Test that we can make string literals using the BeginText and EndText syntax. @given(text()) def test_lexer_text(text): code = "BeginText " + text + " EndText" tokenizer = parse.Tokenizer(code, "") tokens = tokenizer.tokenize() assert tokens[0].type == "text" assert tokens[0].value == text assert tokens[1].type == "EOF"