From f9ba05ba226a4b1e2c0c71fddf430b4f70b3887d Mon Sep 17 00:00:00 2001 From: vzhestkov Date: Wed, 28 Aug 2024 16:34:27 +0200 Subject: [PATCH] Add more cases to test grains.core._systemd --- tests/pytests/unit/grains/test_core.py | 89 ++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/tests/pytests/unit/grains/test_core.py b/tests/pytests/unit/grains/test_core.py index 36545287b9..b64b8c4bf8 100644 --- a/tests/pytests/unit/grains/test_core.py +++ b/tests/pytests/unit/grains/test_core.py @@ -3593,3 +3593,92 @@ def _mock_is_file(filename): assert virtual_grains["virtual"] == "Nitro" assert virtual_grains["virtual_subtype"] == "Amazon EC2" + + +@pytest.mark.parametrize( + "systemd_data,expected", + ( + ( + { + "pid": 1234, + "retcode": 0, + "stdout": "systemd 254 (254.3-1)\n+PAM +AUDIT -SELINUX -APPARMOR -IMA +SMACK " + "+SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS " + "+FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 " + "-PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD " + "+BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified", + "stderr": "", + }, + { + "version": "254", + "features": "+PAM +AUDIT -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL " + "+ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP " + "+LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ " + "+ZLIB +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified", + }, + ), + ( + { + "pid": 2345, + "retcode": 1, + "stdout": "", + "stderr": "some garbage in the output", + }, + { + "version": "UNDEFINED", + "features": "", + }, + ), + ( + { + "pid": 3456, + "retcode": 0, + "stdout": "unexpected stdout\none more line", + "stderr": "", + }, + { + "version": "UNDEFINED", + "features": "", + }, + ), + ( + { + "pid": 4567, + "retcode": 0, + "stdout": "", + "stderr": "", + }, + { + "version": "UNDEFINED", + "features": "", + }, + ), + ( + Exception("Some exception on calling `systemctl --version`"), + { + "version": "UNDEFINED", + "features": "", + }, + ), + ), +) +def test__systemd(systemd_data, expected): + """ + test _systemd + """ + + def mock_run_all_systemd(_): + if isinstance(systemd_data, Exception): + raise systemd_data + return systemd_data + + with patch.dict( + core.__salt__, + { + "cmd.run_all": mock_run_all_systemd, + }, + ): + ret = core._systemd() + assert "version" in ret + assert "features" in ret + assert ret == expected