def setup_packages_update(request, ansible_module): """This fixture is used to downgrade a package for test test_positive_fm_packages_update""" ansible_module.yum_repository( name="custom_repo", description="custom_repo", file="custom_repo", baseurl=FAKE_YUM0_REPO, enabled="yes", gpgcheck="no", ) setup = ansible_module.raw(Packages.install(["--assumeyes", "walrus"])) for result in setup.values(): assert result["rc"] == 0 contacted = ansible_module.yum( name="walrus-0.71-1", allow_downgrade=True, disable_plugin="foreman-protector", state="present", ) for result in contacted.values(): assert result["rc"] == 0 def teardown_packages_update(): contacted = ansible_module.yum(name="walrus", state="absent") for result in contacted.values(): assert result["rc"] == 0 request.addfinalizer(teardown_packages_update)
def test_positive_fm_packages_install(ansible_module, setup_packages_lock_tests): """Verify whether packages install/update work as expected. :id: 645a3d84-34cb-469c-8b79-105b889aac78 :setup: 1. foreman-maintain should be installed. :steps: 1. Run satellite-installer --lock-package-versions 2. Run foreman-maintain packages status 3. Run foreman-maintain packages is-locked 4. Try to install/update package using FM packages install/update command. 5. Run satellite-installer --no-lock-package-versions 6. Run foreman-maintain packages status 7. Run foreman-maintain packages is-locked 8. Try to install package in unlocked state. 9. Teardown (Run satellite-installer --lock-package-versions) :expectedresults: expected packages get locked and unlocked. :CaseImportance: Critical """ contacted = ansible_module.command("yum install -y zsh") for result in contacted.values(): assert result["rc"] == 1 assert "Use foreman-maintain packages install/update <package>" in result[ "stdout"] # Test whether FM packages install/ update command works as expected. contacted = ansible_module.raw( Packages.install(["--assumeyes", "zsh-5.0.2-31.el7.x86_64 elinks"])) for result in contacted.values(): logger.info(result["stdout"]) assert "FAIL" not in result["stdout"] assert "Nothing to do" not in result["stdout"] assert "Packages are locked." in result["stdout"] assert "Automatic locking of package versions is enabled in installer." in result[ "stdout"] contacted = ansible_module.raw(Packages.update(["--assumeyes", "zsh"])) for result in contacted.values(): logger.info(result["stdout"]) assert "FAIL" not in result["stdout"] assert "Nothing to do" not in result["stdout"] assert "Packages are locked." in result["stdout"] assert "Automatic locking of package versions is enabled in installer." in result[ "stdout"] # Test whether packages are unlocked or not contacted = ansible_module.command( "satellite-installer --no-lock-package-versions") for result in contacted.values(): logger.info(result["stdout"]) assert result["rc"] == 0 contacted = ansible_module.command(Packages.status()) for result in contacted.values(): logger.info(result["stdout"]) assert "FAIL" not in result["stdout"] assert "Packages are not locked." in result["stdout"] assert "Automatic locking of package versions is disabled in installer." in result[ "stdout"] assert result["rc"] == 0 contacted = ansible_module.command(Packages.is_locked()) for result in contacted.values(): logger.info(result["stdout"]) assert "Packages are not locked" in result["stdout"] assert result["rc"] == 1 contacted = ansible_module.yum(name="zsh", state="absent") for result in contacted.values(): assert result["rc"] == 0 contacted = ansible_module.command("yum install -y zsh") for result in contacted.values(): assert result["rc"] == 0 assert "Use foreman-maintain packages install/update <package>" not in result[ "stdout"]