From a0a87584b1c8bc70266777d2545ac47e40daa495 Mon Sep 17 00:00:00 2001
From: iamashwin99 <ashwin-kumar.karnad@mpsd.mpg.de>
Date: Tue, 6 Jun 2023 16:07:37 +0200
Subject: [PATCH] add test_create_log_file_names

---
 mpsd-software-environment.py |  4 ++--
 tests.py                     | 44 ++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/mpsd-software-environment.py b/mpsd-software-environment.py
index 7f662a7..0a04af5 100755
--- a/mpsd-software-environment.py
+++ b/mpsd-software-environment.py
@@ -38,11 +38,11 @@ config_vars = {
     "cmd_log_file": "install.log",
     #  Placeholder installer log file name, placed at mpsd_microarch/logs
     "installer_log_template": Template(
-        "${mpsd_release}_${mpsd_microarch}_${date}_{action}.log"
+        "${mpsd_release}_${mpsd_microarch}_${date}_${action}.log"
     ),
     #  Placeholder build log file name, placed at mpsd_microarch/logs
     "build_log_template": Template(
-        "${mpsd_release}_${mpsd_microarch}_${date}_${toolchain}_{action}.log"
+        "${mpsd_release}_${mpsd_microarch}_${date}_${toolchain}_${action}.log"
     ),
     "metadata_tag_open": "!<meta>",
     "metadata_tag_close": "</meta>!",
diff --git a/tests.py b/tests.py
index d440fd3..3a71797 100644
--- a/tests.py
+++ b/tests.py
@@ -5,6 +5,7 @@ import os
 import shutil
 import subprocess
 from pathlib import Path
+import datetime
 
 import pytest
 
@@ -331,6 +332,49 @@ def test_metadata_logging(tmp_path):
     assert read_dict[key] == value
 
 
+def test_create_log_file_names():
+    """Test that the log file names are created correctly."""
+    create_log_file_names = mod.create_log_file_names
+    mpsd_release = "dev-23a"
+    mpsd_microarch = "sandybridge"
+    date = datetime.datetime.now().replace(microsecond=0).isoformat()
+    action = "install"
+    toolchain = "foss2021a"
+    # test for correct action and toolchain
+    installer_log_file, build_log_file = create_log_file_names(
+        mpsd_microarch=mpsd_microarch,
+        mpsd_release=mpsd_release,
+        date=date,
+        action=action,
+        toolchain=toolchain,
+    )
+    assert installer_log_file == f"{mpsd_release}_{mpsd_microarch}_{date}_{action}.log"
+    assert (
+        build_log_file
+        == f"{mpsd_release}_{mpsd_microarch}_{date}_{toolchain}_{action}.log"
+    )
+    # test no build log file for incorrect action
+    installer_log_file, build_log_file = create_log_file_names(
+        mpsd_microarch=mpsd_microarch,
+        mpsd_release=mpsd_release,
+        date=date,
+        action="status",
+        toolchain=toolchain,
+    )
+    assert installer_log_file == f"{mpsd_release}_{mpsd_microarch}_{date}_status.log"
+    assert build_log_file == None
+    # test no build log file for incorrect toolchain
+    installer_log_file, build_log_file = create_log_file_names(
+        mpsd_microarch=mpsd_microarch,
+        mpsd_release=mpsd_release,
+        date=date,
+        action="reinstall",
+        toolchain=None,
+    )
+    assert installer_log_file == f"{mpsd_release}_{mpsd_microarch}_{date}_reinstall.log"
+    assert build_log_file == None
+
+
 def test_interface(tmp_path):
     """Test other things (not implemented yet)."""
     pass
-- 
GitLab