diff --git a/pypandoc/__init__.py b/pypandoc/__init__.py index 232caaa..aa6a607 100644 --- a/pypandoc/__init__.py +++ b/pypandoc/__init__.py @@ -414,6 +414,10 @@ def _classify_pandoc_logging(raw, default_level="WARNING"): log_msgs = [first.replace('[{}] '.format(level), '')] + if level not in level_map: + level = default_level + + for msg in msgs: search = re.search(r"\[(.*?)\]", msg) diff --git a/tests.py b/tests.py index b1dcef1..6454159 100755 --- a/tests.py +++ b/tests.py @@ -334,6 +334,19 @@ def test_classify_pandoc_logging_default(self): self.assertEqual(expected_msgs[i], m) + def test_classify_pandoc_logging_invalid_level(self): + + test = ("[WARN] This is some message on\ntwo lines\n" + "[ERROR] This is a second message.") + expected_levels = [30, 40] + expected_msgs = ["This is some message on\ntwo lines", + "This is a second message."] + + for i, (l, m) in enumerate(pypandoc._classify_pandoc_logging(test)): + self.assertEqual(expected_levels[i], l) + self.assertEqual(expected_msgs[i], m) + + def test_conversion_stderr(self): # Clear logger handlers