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