Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • hmenke/mpsd-software-manager
  • mpsd-cs/mpsd-software-manager
2 results
Show changes
Commits on Source (4)
......@@ -91,7 +91,7 @@ def read_metadata_from_logfile(logfile: Union[str, Path]) -> dict:
}
def set_up_logging(loglevel="warning", filename="gol.log"):
def set_up_logging(loglevel="warning", filename=None):
"""Set up logging.
This function sets up the logging configuration for the script.
......
"""Tests for mpsd-software-environment.py."""
import importlib
import logging
import os
import shutil
import subprocess
from pathlib import Path
import logging
import pytest
mod = importlib.import_module("mpsd-software-environment")
# set loglevel to debug - useful for understanding problems.
# (if the tests pass, pytest doesn't show any output)
# mod.set_up_logging(loglevel="debug", filename="tests.log")
# logging.debug(f"We have set up logging from {__file__}")
mod.set_up_logging(loglevel="debug", filename="tests.log")
logging.debug(f"We have set up logging from {__file__}")
def create_mock_git_repository(target_directory, create_directory=True):
......@@ -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):
......