diff --git a/tests/parse/test_clear_notes.py b/tests/parse/test_clear_notes.py index 98ae39d..cf61890 100644 --- a/tests/parse/test_clear_notes.py +++ b/tests/parse/test_clear_notes.py @@ -16,34 +16,22 @@ from tests.test_token import static_token_by_value, draw_token_random -# Dummy parse_note implementation for testing note clearing +# Dummy NoteSkipper for testing note clearing # This redefines skip_note to skip the StartNote and not do anything else # Effectively this turns notes in to a single token for our tests, not needing # a terminating EndNote -def clear_notes_skip_note_valid(stream, parent_context): - stream.pop() - return None +class NoteSkipperMockValid(NoteSkipper): + def skip_note(self, stream, context): + stream.pop() + return None -# Creates a NoteSkipper with clear_notes_skip_note_valid -def dummy_skipper_valid(): - skipper = NoteSkipper() - skipper.skip_note = clear_notes_skip_note_valid - return skipper - - -# Dummy parse_note implementation for testing error propgation +# Dummy NoteSkipper for testing error propagation # This redefines skip_note to always throw an error -def clear_notes_skip_note_error(stream, parent_context): - s = stream.peek() - raise ParseErrorException(ParseError.TEST_ERROR, s, None, parent_context) - - -# Creates a NoteSkipper with clear_notes_skip_note_error -def dummy_skipper_invalid(): - skipper = NoteSkipper() - skipper.skip_note = clear_notes_skip_note_error - return skipper +class NoteSkipperMockInvalid(NoteSkipper): + def skip_note(self, stream, context): + s = stream.peek() + raise ParseErrorException(ParseError.TEST_ERROR, s, None, context) # Draws a random token suitable for note clearing testing @@ -75,7 +63,7 @@ def test_parse_clear_notes_valid(test_data): (tokens, result) = test_data stream = TokenStream(tokens) - cleared = dummy_skipper_valid().clear_notes(stream, None) + cleared = NoteSkipperMockValid().clear_notes(stream, None) assert cleared == result @@ -97,7 +85,7 @@ # We expect the following behaviour: # - When a StartNote token 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) +@template_parse_invalid(NoteSkipperMockInvalid().clear_notes) def test_parse_clear_notes_startnote_propagation(draw, parent_context): return error_on_token(draw, parent_context, "StartNote", ParseError.TEST_ERROR) @@ -105,6 +93,6 @@ # Tests clear_notes errors when finding an EndNote # We expect the following behaviour: # - When an EndNote token is encountered a FOUND_ENDNOTE error is raised -@template_parse_invalid(dummy_skipper_valid().clear_notes) +@template_parse_invalid(NoteSkipperMockValid().clear_notes) def test_parse_clear_notes_invalid_endnote(draw, parent_context): return error_on_token(draw, parent_context, "EndNote", ParseError.FOUND_ENDNOTE)