def test_is_loaded_kernel_latest_skip_on_not_latest_ol(pretend_os, caplog): message = ( "Skipping the check because there are no publicly available Oracle Linux Server 8.4 repositories available." ) is_loaded_kernel_latest() assert message in caplog.records[-1].message
def test_is_loaded_kernel_latest_eus_system( pretend_os, repoquery_version, uname_version, return_code, package_name, raise_system_exit, tmpdir, monkeypatch, caplog, ): fake_reposdir_path = str(tmpdir) monkeypatch.setattr(checks, "get_hardcoded_repofiles_dir", value=lambda: fake_reposdir_path) run_subprocess_mocked = mock.Mock( spec=run_subprocess, side_effect=run_subprocess_side_effect( ( ( "repoquery", "--quiet", "--qf", '"%{BUILDTIME}\\t%{VERSION}-%{RELEASE}\\t%{REPOID}"', "--setopt=reposdir=%s" % fake_reposdir_path, package_name, ), ( repoquery_version, return_code, ), ), (("uname", "-r"), (uname_version, return_code)), ), ) monkeypatch.setattr( checks, "run_subprocess", value=run_subprocess_mocked, ) if raise_system_exit: with pytest.raises(SystemExit): is_loaded_kernel_latest() repoquery_kernel_version = repoquery_version.split("\t")[1] uname_kernel_version = uname_version.rsplit(".", 1)[0] assert ( "The version of the loaded kernel is different from the latest version in repositories defined in the %s folder" % fake_reposdir_path) assert ("Latest kernel version available in baseos: %s\n" % repoquery_kernel_version in caplog.records[-1].message) assert "Loaded kernel version: %s\n" % uname_kernel_version in caplog.records[ -1].message else: is_loaded_kernel_latest() assert "The currently loaded kernel is at the latest version." in caplog.records[ -1].message
def test_is_loaded_kernel_latest_eus_system_no_connection( pretend_os, monkeypatch, tmpdir, caplog): monkeypatch.setattr(checks, "get_hardcoded_repofiles_dir", value=lambda: str(tmpdir)) system_info.has_internet_access = False is_loaded_kernel_latest() assert "Skipping the check as no internet connection has been detected." in caplog.records[ -1].message
def test_is_loaded_kernel_latest(repoquery_version, uname_version, return_code, major_ver, package_name, raise_system_exit, monkeypatch, caplog): Version = namedtuple("Version", ("major", "minor")) # Using the minor version as 99, so the tests should never fail because of a constraint in the code, since we don't # mind the minor version number (for now), and require only that the major version to be in the range of 6 to 8, # we can set the minor version to 99 to avoid hardcoded checks in the code. monkeypatch.setattr( checks.system_info, "version", value=Version(major=major_ver, minor=99), ) system_info.id = "centos" run_subprocess_mocked = mock.Mock( spec=run_subprocess, side_effect=run_subprocess_side_effect( ( ( "repoquery", "--quiet", "--qf", '"%{BUILDTIME}\\t%{VERSION}-%{RELEASE}\\t%{REPOID}"', package_name, ), ( repoquery_version, return_code, ), ), (("uname", "-r"), (uname_version, return_code)), ), ) monkeypatch.setattr( checks, "run_subprocess", value=run_subprocess_mocked, ) if raise_system_exit: with pytest.raises(SystemExit): is_loaded_kernel_latest() repoquery_kernel_version = repoquery_version.split("\t")[1] uname_kernel_version = uname_version.rsplit(".", 1)[0] assert ("Latest kernel version available in baseos: %s\n" % repoquery_kernel_version in caplog.records[-1].message) assert "Loaded kernel version: %s\n" % uname_kernel_version in caplog.records[ -1].message else: is_loaded_kernel_latest() assert "The currently loaded kernel is at the latest version." in caplog.records[ -1].message
def test_is_loaded_kernel_latest_unsupported_skip(repoquery_version, return_code, major_ver, package_name, unsupported_skip, expected, monkeypatch, caplog): run_subprocess_mocked = mock.Mock( spec=run_subprocess, side_effect=run_subprocess_side_effect(( ( "repoquery", "--quiet", "--qf", '"%{BUILDTIME}\\t%{VERSION}-%{RELEASE}\\t%{REPOID}"', package_name, ), ( repoquery_version, return_code, ), ), ), ) monkeypatch.setattr( checks.system_info, "version", value=systeminfo.Version(major=major_ver, minor=0), ) monkeypatch.setattr( checks, "run_subprocess", value=run_subprocess_mocked, ) monkeypatch.setattr(os, "environ", { "CONVERT2RHEL_UNSUPPORTED_SKIP_KERNEL_CURRENCY_CHECK": unsupported_skip }) if unsupported_skip == "0": with pytest.raises(SystemExit): is_loaded_kernel_latest() expected = expected.format(package_name) else: is_loaded_kernel_latest() assert expected in caplog.records[-1].message