diff --git a/tests.py b/tests.py
index d440fd3abf03e76c579502a5d4ededa5a3324460..d0e23c86ab11f6b7f4510ce898ed947b5377b04c 100644
--- a/tests.py
+++ b/tests.py
@@ -1,6 +1,7 @@
 """Tests for mpsd-software-environment.py."""
 
 import importlib
+import logging
 import os
 import shutil
 import subprocess
@@ -317,18 +318,41 @@ def test_install_environment_zlib():
 def test_metadata_logging(tmp_path):
     """Test that metadata is logged and read correctly."""
     # Test that the metadata is logged correctly
-    mod.set_up_logging(loglevel="debug", filename=tmp_path / "test-metadata.log")
-    key = "important_key"
-    value = "important_value"
-    mod.log_metadata(key, value)
-    open_tag = mod.config_vars["metadata_tag_open"]
-    close_tag = mod.config_vars["metadata_tag_close"]
-    expected_log = f"{open_tag}{key}:{value}{close_tag}"
+    filename = tmp_path / "test-metadata.log"
+    print(f"Writing to {filename}")
+    mod.set_up_logging(loglevel="debug", filename=filename)
+
+    # our test data
+    keys = ["important_key", "important_value2"]
+    values = ["important_value", "important_value2"]
+
+    expected_log_entries = []
+    for key, value in zip(keys, values):
+        mod.log_metadata(key, value)
+        mod.log_metadata(key, value)
+        open_tag = mod.config_vars["metadata_tag_open"]
+        close_tag = mod.config_vars["metadata_tag_close"]
+        expected_log = f"{open_tag}{key}:{value}{close_tag}"
+        expected_log_entries.append(expected_log)
+        logging.info(f"Add some other info (after adding {key=})")
+        logging.debug("Add some other info")
+        logging.warning("Add some other info")
+
+    # Check that relevant lines show up in the log file somewhere
     with open(tmp_path / "test-metadata.log", "r") as f:
-        assert expected_log in f.read()
-    # Test that the metadata is read correctly
+        logfile_content = f.read()
+        for expected_log in expected_log_entries:
+            assert expected_log in logfile_content
+
+    # Test that the metadata is read correctly using our parser
     read_dict = mod.read_metadata_from_logfile(tmp_path / "test-metadata.log")
-    assert read_dict[key] == value
+
+    # check all entries are in the file
+    for key, value in zip(keys, values):
+        read_dict[key] == value
+
+    # check no additional entries are there
+    assert len(read_dict) == len(keys)
 
 
 def test_interface(tmp_path):