Skip to content

Commit

Permalink
[6.14.z] Cherrypick test sync multiple large repos 6.14.z (#12946)
Browse files Browse the repository at this point in the history
* test for syncing multiple large repos

* Adressing comments

* addressing comments

* precommit fix
  • Loading branch information
ColeHiggins2 authored Nov 29, 2023
1 parent 9607318 commit f159586
Showing 1 changed file with 49 additions and 1 deletion.
50 changes: 49 additions & 1 deletion tests/foreman/api/test_repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from robottelo import constants
from robottelo.cli.base import CLIReturnCodeError
from robottelo.config import settings
from robottelo.constants import MIRRORING_POLICIES
from robottelo.constants import DEFAULT_ARCHITECTURE, MIRRORING_POLICIES, REPOS
from robottelo.utils.datafactory import parametrized


Expand Down Expand Up @@ -242,3 +242,51 @@ def test_positive_multiple_orgs_with_same_repo(target_sat):
repo_counts = target_sat.api.Repository(id=repo.id).read().content_counts
repos.append(repo_counts)
assert repos[0] == repos[1] == repos[2]


def test_positive_sync_mulitple_large_repos(module_target_sat, module_entitlement_manifest_org):
"""Enable and bulk sync multiple large repositories
:id: b51c4a3d-d532-4342-be61-e868f7c3a723
:Steps:
1. Enabled multiple large Repositories
Red Hat Enterprise Linux 8 for x86_64 - AppStream RPMs 8
Red Hat Enterprise Linux 8 for x86_64 - BaseOS RPMs 8
Red Hat Enterprise Linux 8 for x86_64 - AppStream Kickstart 8
Red Hat Enterprise Linux 8 for x86_64 - BaseOS Kickstart 8
2. Sync all four repositories at the same time
3. Assert that the bulk sync succeeds
:expectedresults: All repositories should sync with no errors
:BZ: 2224031
"""
repo_names = ['rhel8_bos', 'rhel8_aps']
kickstart_names = ['rhel8_bos', 'rhel8_aps']
for name in repo_names:
module_target_sat.api_factory.enable_rhrepo_and_fetchid(
basearch=DEFAULT_ARCHITECTURE,
org_id=module_entitlement_manifest_org.id,
product=REPOS[name]['product'],
repo=REPOS[name]['name'],
reposet=REPOS[name]['reposet'],
releasever=REPOS[name]['releasever'],
)

for name in kickstart_names:
rh_repo_id = module_target_sat.api_factory.enable_rhrepo_and_fetchid(
basearch=constants.DEFAULT_ARCHITECTURE,
org_id=module_entitlement_manifest_org.id,
product=constants.REPOS['kickstart'][name]['product'],
repo=constants.REPOS['kickstart'][name]['name'],
reposet=constants.REPOS['kickstart'][name]['reposet'],
releasever=constants.REPOS['kickstart'][name]['version'],
)
rh_repos = module_target_sat.api.Repository(id=rh_repo_id).read()
rh_product = module_target_sat.api.Product(id=rh_repos.product.id).read()
assert len(rh_product.repository) == 4
res = module_target_sat.api.ProductBulkAction().sync(
data={'ids': [rh_product.id]}, timeout=2000
)
assert res['result'] == 'success'

0 comments on commit f159586

Please sign in to comment.