diff options
| -rw-r--r-- | mammoth/styles/parser/document_matcher_parser.py | 3 | ||||
| -rw-r--r-- | mammoth/styles/parser/token_iterator.py | 6 | ||||
| -rw-r--r-- | tests/styles/parser/document_matcher_parser_tests.py | 6 |
3 files changed, 10 insertions, 5 deletions
diff --git a/mammoth/styles/parser/document_matcher_parser.py b/mammoth/styles/parser/document_matcher_parser.py index 0024ac8..7f117b7 100644 --- a/mammoth/styles/parser/document_matcher_parser.py +++ b/mammoth/styles/parser/document_matcher_parser.py @@ -59,8 +59,7 @@ def _parse_string_matcher(tokens): elif tokens.try_skip(TokenType.SYMBOL, "^="): return document_matchers.starts_with(parse_string(tokens)) else: - # TODO raise - pass + raise LineParseError("Unrecognised string matcher: {0}".format(tokens.next_value())) def _parse_numbering(tokens): if tokens.try_skip(TokenType.SYMBOL, ":"): diff --git a/mammoth/styles/parser/token_iterator.py b/mammoth/styles/parser/token_iterator.py index 027775b..fded56d 100644 --- a/mammoth/styles/parser/token_iterator.py +++ b/mammoth/styles/parser/token_iterator.py @@ -12,12 +12,12 @@ class TokenIterator(object): def peek_token_type(self): return self._tokens[self._index].type - def next_value(self, token_type): + def next_value(self, token_type=None): return self._next(token_type).value - def _next(self, token_type): + def _next(self, token_type=None): token = self._tokens[self._index] - if token.type == token_type: + if token_type is None or token.type == token_type: self._index += 1 return token else: diff --git a/tests/styles/parser/document_matcher_parser_tests.py b/tests/styles/parser/document_matcher_parser_tests.py index 0cf5f0e..194d6fa 100644 --- a/tests/styles/parser/document_matcher_parser_tests.py +++ b/tests/styles/parser/document_matcher_parser_tests.py @@ -47,6 +47,12 @@ def reads_paragraph_with_style_name_prefix(): @istest +def unrecognised_string_matcher_raises_error(): + error = assert_raises(LineParseError, lambda: read_document_matcher("p[style-name*='Heading']")) + assert_equal("Unrecognised string matcher: *", str(error)) + + +@istest def reads_paragraph_ordered_list(): assert_equal( document_matchers.paragraph(numbering=documents.numbering_level(1, is_ordered=True)), |
