[tests:results] implement testing for logging messages
This commit is contained in:
@@ -91,6 +91,23 @@ class TestExtractorResults(unittest.TestCase):
|
|||||||
self.assertLessEqual(value, range.stop, msg=msg)
|
self.assertLessEqual(value, range.stop, msg=msg)
|
||||||
self.assertGreaterEqual(value, range.start, msg=msg)
|
self.assertGreaterEqual(value, range.start, msg=msg)
|
||||||
|
|
||||||
|
def assertLogEqual(self, expected, output):
|
||||||
|
if isinstance(expected, str):
|
||||||
|
expected = (expected,)
|
||||||
|
|
||||||
|
for exp, out in zip(expected, output):
|
||||||
|
level, name, message = out.split(":", 2)
|
||||||
|
|
||||||
|
if isinstance(exp, str):
|
||||||
|
return self.assertEqual(exp, message, "#log")
|
||||||
|
|
||||||
|
self.assertEqual(exp[0].lower(), level.lower(), "#log/level")
|
||||||
|
if len(exp) < 3:
|
||||||
|
self.assertEqual(exp[1], message, "#log/message")
|
||||||
|
else:
|
||||||
|
self.assertEqual(exp[1], name , "#log/name")
|
||||||
|
self.assertEqual(exp[2], message, "#log/message")
|
||||||
|
|
||||||
def _run_test(self, result):
|
def _run_test(self, result):
|
||||||
if result.get("#fail"):
|
if result.get("#fail"):
|
||||||
del result["#fail"]
|
del result["#fail"]
|
||||||
@@ -145,7 +162,12 @@ class TestExtractorResults(unittest.TestCase):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tjob.run()
|
if "#log" in result:
|
||||||
|
with self.assertLogs() as log_info:
|
||||||
|
tjob.run()
|
||||||
|
self.assertLogEqual(result["#log"], log_info.output)
|
||||||
|
else:
|
||||||
|
tjob.run()
|
||||||
except exception.StopExtraction:
|
except exception.StopExtraction:
|
||||||
pass
|
pass
|
||||||
except exception.HttpError as exc:
|
except exception.HttpError as exc:
|
||||||
|
|||||||
Reference in New Issue
Block a user