From 44da6a895d6f1f485392c24400d55eaff46bcb75 Mon Sep 17 00:00:00 2001 From: Andreas Eknes Lie Date: Mon, 12 Feb 2024 09:54:54 +0100 Subject: [PATCH] Have detect_os not depend on token count in releasename --- src/subscript/runrms/runrms.py | 11 ++++++++--- tests/test_runrms.py | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/subscript/runrms/runrms.py b/src/subscript/runrms/runrms.py index 532d6dc1d..470c354b4 100644 --- a/src/subscript/runrms/runrms.py +++ b/src/subscript/runrms/runrms.py @@ -308,9 +308,14 @@ def detect_os(self): """Detect operating system string in runtime, just use default if not found.""" if RHEL_ID.is_file(): with open(RHEL_ID, "r", encoding="utf-8") as buffer: - major = buffer.read().split(" ")[6].split(".")[0].replace("'", "") - self.osver = "x86_64_RH_" + str(major) - logger.debug("RHEL version found in %s", RHEL_ID) + tokens = buffer.read().split() + for t in tokens: + if "." in t: + major = t.split(".")[0] + self.osver = f"x86_64_RH_{major}" + logger.debug("RHEL version found in %s", RHEL_ID) + return + raise ValueError("Could not detect RHEL version") def do_parse_args(self, args): """Parse command line args.""" diff --git a/tests/test_runrms.py b/tests/test_runrms.py index a08ac8408..d75034557 100644 --- a/tests/test_runrms.py +++ b/tests/test_runrms.py @@ -128,7 +128,8 @@ def test_runlogger(tmp_path): ("Red Hat Enterprise Linux Server release 6.0 (bar)", "x86_64_RH_6"), ("Red Hat Enterprise Linux Server release 7.2 (Maipo)", "x86_64_RH_7"), ("Red Hat Enterprise Linux Server release 8.2 (foo)", "x86_64_RH_8"), - pytest.param("foobar", None, marks=pytest.mark.xfail(raises=IndexError)), + ("Red Hat Enterprise Linux release 8.9 (Ootpa)", "x86_64_RH_8"), + pytest.param("foobar", None, marks=pytest.mark.xfail(raises=ValueError)), ], ) def test_detect_os(os_id, expected, tmp_path, mocker):