From 0fb64b067cf1f6416aa0db8fb20b4a2f7ff0b4f6 Mon Sep 17 00:00:00 2001 From: NicklasTegner Date: Tue, 3 May 2022 08:30:18 +0200 Subject: [PATCH 1/2] Added test logic for invalid log levels --- tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 From eb5fd820b21f745c08552e7a81ff4a4fb65ceedd Mon Sep 17 00:00:00 2001 From: NicklasTegner Date: Tue, 3 May 2022 08:31:07 +0200 Subject: [PATCH 2/2] Now falling back to default log level, if classify can't identify the correct level --- pypandoc/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) 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)