diff --git a/tests/parse/test_clear_notes.py b/tests/parse/test_clear_notes.py index a682147..8adb7fd 100644 --- a/tests/parse/test_clear_notes.py +++ b/tests/parse/test_clear_notes.py @@ -14,7 +14,12 @@ from src.token import TokenStream from tests.parse.templates import template_test_invalid from tests.parse.test_error import static_parse_context -from tests.parse.test_note import draw_note_value_token, static_note_tokens +from tests.parse.test_note import ( + draw_note_value_token, + static_note_tokens, + static_note_invalid, + static_note_invalid_error, +) from tests.test_token import static_token_by_value @@ -42,6 +47,16 @@ assert cleared == result +# Tests clear_notes passes through skip_note errors +def test_parse_clear_notes_startnote_propagation(): + tokens = static_note_invalid() + parser = NoteSkipper().clear_notes + parent_context = static_parse_context() + context = ParseContext(ParseTask.CLEAR_NOTES, tokens[0], parent_context) + error = static_note_invalid_error(context) + template_test_invalid(parser, parent_context, tokens, error) + + # Tests clear_notes errors when finding an EndNote @given(lists(draw_note_value_token())) def test_parse_clear_notes_invalid_endnote(tokens): diff --git a/tests/parse/test_note.py b/tests/parse/test_note.py index da7c800..9c7b8f7 100644 --- a/tests/parse/test_note.py +++ b/tests/parse/test_note.py @@ -31,6 +31,18 @@ return [static_token_by_value("StartNote"), static_token_by_value("EndNote")] +# An invalid note token +def static_note_invalid(): + return [static_token_by_value("StartNote")] + + +# An invalid note token error +def static_note_invalid_error(parent_context): + token = static_note_invalid()[0] + note_context = ParseContext(ParseTask.PARSE_NOTE, token, parent_context) + return ParseErrorException(ParseError.NO_TOKEN, None, None, note_context) + + # Draws a random token suitable for note building @composite def draw_note_value_token(draw):