diff --git a/.gitignore b/.gitignore index 9b36a6f2a09259bffe3d53d9dbae59aabb69ece2..1e1ccaa62533a412e77c0d738e39c2d0c9af6f75 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ coverage.xml .coverage htmlcov docs/build -*.log \ No newline at end of file +*.log +dist/ \ No newline at end of file diff --git a/test/error_report/test_error_report.py b/test/error_report/test_error_report.py index 78c4f3390b772f64812f5a3dcadaacb78337a3eb..f867092b96e7352494d251fed4f1758dee78dd37 100644 --- a/test/error_report/test_error_report.py +++ b/test/error_report/test_error_report.py @@ -5,7 +5,6 @@ import json import pathlib import smtplib from unittest.mock import Mock, patch, call -import brian_polling_manager.error_report.report from brian_polling_manager.error_report.report import ( SMTP_TIMEOUT_SECONDS, render_email, @@ -33,12 +32,6 @@ from click.testing import CliRunner DATA_DIR = pathlib.Path(__file__).parent / "data" -@pytest.fixture(autouse=True) -def mock_setup_logging(): - with patch.object(cli, "setup_logging") as mock: - yield mock - - @pytest.fixture(scope="session") def full_inventory(): return json.loads(((DATA_DIR / "full-inventory.json").read_text())) @@ -52,6 +45,10 @@ def small_inventory(): @pytest.fixture def mock_influx_client(): class FakeInfluxClient: + """ + Fake influx client, see `create_error_point` for usage how to set it up + """ + INFLUX_ERROR_FIELDS = {v.replace("-", "_"): k for k, v in ERROR_FIELDS.items()} def __init__(self) -> None: @@ -76,7 +73,9 @@ def mock_influx_client(): return self.today.append(point) if timestamp == "yesterday": return self.yesterday.append(point) - raise ValueError("'when' argument must be either 'today' or 'yesterday ") + raise ValueError( + "'timestamp' argument must be either 'today' or 'yesterday'" + ) def query(self, q): result = Mock() @@ -100,7 +99,7 @@ def create_error_point(mock_influx_client): ``input_crc_errors``, ``input_total_errors``,``input_discards``,``input_drops``, ``output_drops`` - The created error points will be returned by the mock_influx fixture + The created error points will be returned by ``mock_influx_client`` fixture """ def _create(hostname, interface, timestamp, **fields): @@ -114,7 +113,7 @@ def create_error_point(mock_influx_client): def get_interface_errors(small_inventory, mock_influx_client): interfaces = _filter_and_sort_interfaces(small_inventory) - def _get(**kwargs): + def _get_interface_errors(**kwargs): defaults = { "client": mock_influx_client, "interface_info": interfaces, @@ -125,7 +124,7 @@ def get_interface_errors(small_inventory, mock_influx_client): jsonschema.validate(result, PROCESSED_ERROR_COUNTERS_SCHEMA) return result - return _get + return _get_interface_errors def test_validate_config(tmp_path): @@ -139,6 +138,7 @@ def test_validate_config(tmp_path): "hostname": "some.smtp.server", "username": "smtp-user", "password": "smtp-password", + "starttls": False, }, "inventory": ["blah"], "influx": { @@ -384,7 +384,7 @@ def test_processes_excluded_interface(create_error_point, get_interface_errors): ) create_error_point( "mx1.fra.de.geant.net", "ae10", "today", input_drops=3, framing_errors=4 - ) + ) # this interface is excluded through its description errors = get_interface_errors(exclusions=["foo"]) assert errors["interfaces"] == [ @@ -425,7 +425,7 @@ def test_render_html(create_error_point, get_interface_errors): create_error_point("mx1.fra.de.geant.net", "ae10", "today", input_drops=3) errors = get_interface_errors() result = render_html(errors=errors, date="<some date>") - # careful, there are tabs mixed with spaces here, but hey, we want to keep the + # be careful, there are tabs mixed with spaces here, but hey, we want to keep the # output as close to the original script expected = """\ <html> @@ -473,7 +473,7 @@ def test_render_html_with_exclusions(create_error_point, get_interface_errors): ) errors = get_interface_errors(exclusions=["foo"]) result = render_html(errors=errors, date="<some date>") - # careful, mixing tabs with spaces here + # be careful, mixing tabs with spaces here expected = """\ <html> <body> @@ -632,9 +632,7 @@ def test_e2e( config_file, create_error_point, ): - create_error_point( - "mx1.ams.nl.geant.net", "ae1", "today", input_drops=1 - ) + create_error_point("mx1.ams.nl.geant.net", "ae1", "today", input_drops=1) with patch.object( cli, "load_interfaces", return_value=small_inventory