diff --git a/robottelo/host_helpers/contenthost_mixins.py b/robottelo/host_helpers/contenthost_mixins.py index f009503666a..74566b0ffb0 100644 --- a/robottelo/host_helpers/contenthost_mixins.py +++ b/robottelo/host_helpers/contenthost_mixins.py @@ -154,6 +154,7 @@ class HostInfo: @property def applicable_errata_count(self): """return the applicable errata count for a host""" + self.run('subscription-manager repos') return self.nailgun_host.read().content_facet_attributes['errata_counts']['total'] diff --git a/tests/foreman/api/test_errata.py b/tests/foreman/api/test_errata.py index ba64ce1c9a0..8c6383a4c7a 100644 --- a/tests/foreman/api/test_errata.py +++ b/tests/foreman/api/test_errata.py @@ -17,7 +17,6 @@ :Upstream: No """ # For ease of use hc refers to host-collection throughout this document -from copy import copy from time import sleep from nailgun import entities @@ -159,12 +158,10 @@ def test_positive_install_in_hc(module_org, activation_key, custom_repo, target_ @pytest.mark.tier3 -@pytest.mark.rhel_ver_match(r'^(?!6$)\d+$') +@pytest.mark.rhel_ver_match('[^6]') @pytest.mark.no_containers @pytest.mark.e2e -def test_positive_install_multiple_in_host( - function_org, rhel_contenthost, target_sat, function_lce -): +def test_positive_install_multiple_in_host(target_sat, rhel_contenthost, module_org, module_lce): """For a host with multiple applicable errata install one and ensure the rest of errata is still available @@ -185,35 +182,34 @@ def test_positive_install_multiple_in_host( :CaseLevel: System """ ak = target_sat.api.ActivationKey( - organization=function_org, - environment=function_lce, + organization=module_org, + environment=module_lce, ).create() - cv = target_sat.api.ContentView(organization=function_org).create() - # Associate custom repos with org, cv, lce, ak: + # Associate custom repos with org, lce, ak: target_sat.cli_factory.setup_org_for_a_custom_repo( { 'url': settings.repos.yum_9.url, - 'organization-id': function_org.id, - 'content-view-id': cv.id, - 'lifecycle-environment-id': function_lce.id, + 'organization-id': module_org.id, + 'lifecycle-environment-id': module_lce.id, 'activationkey-id': ak.id, } ) - # Install katello-ca, register content-host, enable all repos: - rhel_contenthost.install_katello_ca(target_sat) - rhel_contenthost.register_contenthost(function_org.name, ak.name, function_lce.name) + rhel_contenthost.register( + activation_keys=ak.name, + target=target_sat, + org=module_org, + loc=None, + ) assert rhel_contenthost.subscribed # Installing outdated custom packages: for package in constants.FAKE_9_YUM_OUTDATED_PACKAGES: rhel_contenthost.run(f'yum remove -y {str(package.split("-", 1)[0])}') assert rhel_contenthost.run(f'yum install -y {package}').status == 0 assert rhel_contenthost.run(f'rpm -q {package}').status == 0 - rhel_contenthost.add_rex_key(satellite=target_sat) - rhel_contenthost.run(r'subscription-manager repos --enable \*') # Each errata will be installed sequentially, # after each install, applicable-errata-count should drop by one. for errata in constants.FAKE_9_YUM_SECURITY_ERRATUM: - pre_errata_count = copy(rhel_contenthost.applicable_errata_count) + pre_errata_count = rhel_contenthost.applicable_errata_count assert pre_errata_count >= 1 task_id = target_sat.api.JobInvocation().run( data={ @@ -221,7 +217,7 @@ def test_positive_install_multiple_in_host( 'inputs': {'errata': str(errata)}, 'targeting_type': 'static_query', 'search_query': f'name = {rhel_contenthost.hostname}', - 'organization_id': function_org.id, + 'organization_id': module_org.id, }, )['id'] target_sat.wait_for_tasks( @@ -229,7 +225,7 @@ def test_positive_install_multiple_in_host( search_rate=20, max_tries=15, ) - sleep(10) + sleep(20) assert rhel_contenthost.applicable_errata_count == pre_errata_count - 1