Skip to content

Add fields to validation log messages #1326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 22, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions _delphi_utils_python/delphi_utils/validator/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,21 @@ def log(self, logger=None):
warnings = len(self.raised_warnings),
phase="validation")
for error in self.unsuppressed_errors:
logger.critical(str(error), phase="validation")
date_str = "*" if error.date is None else error.date.isoformat()
logger.critical(str(error),
phase = "validation",
error_name = error.check_name,
signal = error.signal,
resolution = error.geo_type,
date = date_str)
for warning in self.raised_warnings:
logger.warning(str(warning), phase="validation")
date_str = "*" if warning.date is None else warning.date.isoformat()
logger.warning(str(warning),
phase="validation",
error_name = warning.check_name,
signal = warning.signal,
resolution = warning.geo_type,
date = date_str)

def print_and_exit(self, logger=None, die_on_failures=True):
"""Print results and exit.
Expand Down
28 changes: 21 additions & 7 deletions _delphi_utils_python/tests/validator/test_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ class TestValidationReport:
ERROR_2 = ValidationFailure("bad",
filename="20201107_county_sig2.csv",
message="msg 2")
WARNING_1 = ValidationFailure("wrong import", date = None)
WARNING_2 = ValidationFailure("right import", date = None)

def test_add_raised_unsuppressed_error(self):
"""Test that an unsupressed error shows up in the unsuppressed error list."""
Expand All @@ -36,8 +38,8 @@ def test_str(self):
report.increment_total_checks()
report.increment_total_checks()
report.increment_total_checks()
report.add_raised_warning(ImportWarning("wrong import"))
report.add_raised_warning(ImportWarning("right import"))
report.add_raised_warning(self.WARNING_1)
report.add_raised_warning(self.WARNING_2)
report.add_raised_error(self.ERROR_1)
report.add_raised_error(self.ERROR_2)

Expand All @@ -48,15 +50,27 @@ def test_log(self):
report.increment_total_checks()
report.increment_total_checks()
report.increment_total_checks()
report.add_raised_warning(ImportWarning("wrong import"))
report.add_raised_warning(ImportWarning("right import"))
report.add_raised_warning(self.WARNING_1)
report.add_raised_warning(self.WARNING_2)
report.add_raised_error(self.ERROR_1)
report.add_raised_error(self.ERROR_2)

report.log(mock_logger)
mock_logger.critical.assert_called_once_with(
"bad failed for sig2 at resolution county on 2020-11-07: msg 2",
phase = "validation")
phase = "validation", error_name = "bad",
signal = "sig2", resolution = "county",
date = "2020-11-07")
mock_logger.warning.assert_has_calls(
[mock.call("wrong import",phase = "validation"),
mock.call("right import", phase = "validation")])
[mock.call("wrong import failed for None at resolution None on *: ",
phase = "validation",
error_name = "wrong import",
signal = None,
resolution = None,
date = '*'),
mock.call("right import failed for None at resolution None on *: ",
phase = "validation",
error_name = "right import",
signal = None,
resolution = None,
date = '*')])