From e1b6c26bfbc612be0ae2ba5ebb13bf888de26eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= Date: Wed, 22 Jan 2025 11:41:43 +0100 Subject: [PATCH] Test/osbuild-image-info: add unit tests for read_default_target() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add two unit tests for the read_default_target() function: 1. When default target should be found. 2. When there should be no default target. Signed-off-by: Tomáš Hozza --- tools/test/test_osbuild_image_info.py | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/test/test_osbuild_image_info.py b/tools/test/test_osbuild_image_info.py index 1386217a..3b22ce85 100644 --- a/tools/test/test_osbuild_image_info.py +++ b/tools/test/test_osbuild_image_info.py @@ -135,3 +135,41 @@ grub_class fedora""", def test_read_boot_entries(tmp_path, fake_tree, entries): make_fake_tree(tmp_path, fake_tree) assert osbuild_image_info.read_boot_entries(tmp_path / "boot") == entries + + +def test_read_default_target_ok(tmp_path): + """ + Test the happy case when determinig the systemd default target + """ + make_fake_tree(tmp_path, { + "/usr/lib/systemd/system/multi-user.target": """# SPDX-License-Identifier: LGPL-2.1-or-later +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Multi-User System +Documentation=man:systemd.special(7) +Requires=basic.target +Conflicts=rescue.service rescue.target +After=basic.target rescue.service rescue.target +AllowIsolate=yes +""" + }) + etc_systemd_system_dir = tmp_path / "etc/systemd/system" + etc_systemd_system_dir.mkdir(parents=True) + default_target_link = etc_systemd_system_dir / "default.target" + default_target_link.symlink_to("/usr/lib/systemd/system/multi-user.target") + + assert osbuild_image_info.read_default_target(tmp_path) == "multi-user.target" + + +def test_read_default_target_none(tmp_path): + """ + Test the case when when there is no default target set on the system + """ + assert osbuild_image_info.read_default_target(tmp_path) == ""