diff --git a/tests/parse/test_clear_notes.py b/tests/parse/test_clear_notes.py index 0785412..009a445 100644 --- a/tests/parse/test_clear_notes.py +++ b/tests/parse/test_clear_notes.py @@ -75,22 +75,26 @@ assert cleared == result +# Error when finding a specific token in a stream of notes +def error_on_token(draw, parent_context, value, error): + tokens = draw(lists(draw_clear_notes_value_token())) + # Ensure we have a value somewhere + start = draw(draw_token_by_value(value)) + new_tokens = tokens + [start] + context = ParseContext(ParseTask.CLEAR_NOTES, new_tokens[0], parent_context) + for token in new_tokens: + if token.value == value: + error = ParseErrorException(error, token, None, context) + return (new_tokens, error) + + # Tests clear_notes passes through skip_note errors # We expect the following behaviour: # - When StartNote is encountered skip_note is called to skip the note # - Any error skip_note gives is propagated through clear_notes @template_parse_invalid(dummy_skipper_invalid().clear_notes) def test_parse_clear_notes_startnote_propagation(draw, parent_context): - tokens = draw(lists(draw_clear_notes_value_token())) - # Ensure we have a StartNote somewhere - start = draw(draw_token_by_value("StartNote")) - new_tokens = tokens + [start] - context = ParseContext(ParseTask.CLEAR_NOTES, new_tokens[0], parent_context) - for token in new_tokens: - if token.value == "StartNote": - error = ParseErrorException(ParseError.TEST_ERROR, token, None, context) - return (new_tokens, error) - raise AssertionError("Unable to find StartNote?") + return error_on_token(draw, parent_context, "StartNote", ParseError.TEST_ERROR) # Tests clear_notes errors when finding an EndNote @@ -98,13 +102,4 @@ # - When EndNote is encountered a FOUND_ENDNOTE error is raised @template_parse_invalid(dummy_skipper_valid().clear_notes) def test_parse_clear_notes_invalid_endnote(draw, parent_context): - tokens = draw(lists(draw_clear_notes_value_token())) - # Ensure we have an EndNote somewhere - start = draw(draw_token_by_value("EndNote")) - new_tokens = tokens + [start] - context = ParseContext(ParseTask.CLEAR_NOTES, new_tokens[0], parent_context) - for token in new_tokens: - if token.value == "EndNote": - error = ParseErrorException(ParseError.FOUND_ENDNOTE, token, None, context) - return (new_tokens, error) - raise AssertionError("Unable to find EndNote?") + return error_on_token(draw, parent_context, "EndNote", ParseError.FOUND_ENDNOTE)