From d28e4c283de9ac3e6f172c900f58f91e7cbb66d1 Mon Sep 17 00:00:00 2001 From: Petr Stodulka Date: Sun, 7 Jun 2026 01:31:39 +0200 Subject: [PATCH 102/108] [6/9] targetcontentresolver: operate with RepoMapDataHandler Originally various libraries required RepositoriesMapping message in the input parameters. Then some of them just initialized RepoMapDataHandler (which requires to consume RHUIInfo message) and in case of the `repositoriesblocklist` library it even duplicated functionality implemented in the handler. The handler is now initialized inside the orchestrator and all other libraries accept just the handler as the input parameter. This leads to another deduplication and simplification of the codebase. Unit tests adjusted with assistance of AI. Jira: RHEL-115867 Assisted-by: Claude Code (Opus 4.6) Signed-off-by: Petr Stodulka --- .../libraries/pes_events_scanner.py | 27 +++++------ .../libraries/repositoriesblocklist.py | 47 +++++++++---------- .../libraries/setuptargetrepos.py | 14 ++---- .../libraries/targetcontentresolver.py | 24 ++++++++-- .../tests/test_pes_event_scanner.py | 5 +- .../tests/test_repositoriesblocklist.py | 41 ++++++++++++---- .../tests/test_setuptargetrepos.py | 23 +++++---- .../tests/test_targetcontentresolver.py | 20 ++++---- 8 files changed, 116 insertions(+), 85 deletions(-) diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/pes_events_scanner.py b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/pes_events_scanner.py index cbc99adf..96f26a59 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/pes_events_scanner.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/pes_events_scanner.py @@ -17,7 +17,6 @@ from leapp.models import ( PESIDRepositoryEntry, PESRpmTransactionTasks, RepositoriesFacts, - RHUIInfo, RpmTransactionTasks ) @@ -112,6 +111,7 @@ def get_relevant_releases(events): def _get_enabled_modules(): + # TODO(pstodulk): take a look enabled_modules_msgs = api.consume(EnabledModules) enabled_modules_msg = next(enabled_modules_msgs, None) if list(enabled_modules_msgs): @@ -357,22 +357,20 @@ def get_enabled_repoids(): return enabled_repoids -def get_pesid_to_repoid_map(target_pesids, repositories_map_msg, enabled_repoids): +def get_pesid_to_repoid_map(target_pesids, repomap_handler, enabled_repoids): """ Get a dictionary mapping all PESID repositories to their corresponding repoid. :param target_pesids: The set of target PES IDs needed to be mapped - :param repositories_map_msg: RepositoriesMapping message. + :param repomap_handler: Operator to work with the repositories mapping data + :type repomap_handler: repomap_calc.RepoMapDataHandler :return: Dictionary mapping the target_pesids to their corresponding repoid """ - rhui_info = next(api.consume(RHUIInfo), None) - cloud_provider = rhui_info.provider if rhui_info else '' - - repomap_handler = repomap_calc.RepoMapDataHandler(repositories_map_msg, cloud_provider=cloud_provider) - # NOTE: We have to calculate expected target repositories like in the setuptargetrepos actor. # It's planned to handle this in different a way in future... - + # TODO(pstodulk): ?? hmm..what about moving it to the orchestrator? + # TODO(pstodulk): what about returning requests just for PESIDS? Setuptargetrepo + # lib will pick the right one for us later. default_channels = repomap_calc.get_default_repository_channels(repomap_handler, enabled_repoids) repomap_handler.set_default_channels(default_channels) @@ -432,7 +430,7 @@ def get_pesid_to_repoid_map(target_pesids, repositories_map_msg, enabled_repoids return repositories_mapping -def replace_pesids_with_repoids_in_packages(packages, source_pkgs_repoids, repositories_map_msg, enabled_repoids): +def replace_pesids_with_repoids_in_packages(packages, source_pkgs_repoids, repomap_handler, enabled_repoids): """Replace packages with PESID in their .repository field with ones that have repoid providing the package.""" # We want to map only PESIDs - if some package had no events, it will its repository set to source system repoid packages_with_pesid = {pkg for pkg in packages if pkg.repository not in source_pkgs_repoids} @@ -440,7 +438,7 @@ def replace_pesids_with_repoids_in_packages(packages, source_pkgs_repoids, repos required_target_pesids = {pkg.repository for pkg in packages_with_pesid} - pesid_to_target_repoid_map = get_pesid_to_repoid_map(required_target_pesids, repositories_map_msg, enabled_repoids) + pesid_to_target_repoid_map = get_pesid_to_repoid_map(required_target_pesids, repomap_handler, enabled_repoids) packages_with_unknown_target_repoid = { pkg @@ -554,11 +552,12 @@ def include_instructions_from_transaction_configuration(rpm_tasks, transaction_c modules_to_reset=modules_to_reset) -def scan_pes_events(repositories_map_msg, blacklisted_repoids, enabled_repoids): +def scan_pes_events(repomap_handler, blacklisted_repoids, enabled_repoids): """ Process PES events and compute RPM transaction tasks. - :param repositories_map_msg: RepositoriesMapping message. + :param repomap_handler: Operator to work with the repositories mapping data + :type repomap_handler: repomap_calc.RepoMapDataHandler :param blacklisted_repoids: Set of repoids to exclude from target packages. If None, an empty set is used. :returns: Set of target repoids that need to be enabled, or None if no PES events are found. :rtype: Optional[set] @@ -588,7 +587,7 @@ def scan_pes_events(repositories_map_msg, blacklisted_repoids, enabled_repoids): target_pkgs = replace_pesids_with_repoids_in_packages( target_pkgs, repoids_of_source_pkgs, - repositories_map_msg, + repomap_handler, enabled_repoids ) diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/repositoriesblocklist.py b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/repositoriesblocklist.py index e526bcbd..c77a1f13 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/repositoriesblocklist.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/repositoriesblocklist.py @@ -32,44 +32,39 @@ def _report_excluded_repos(repos): reporting.create_report(report) -def _get_crb_repos(repo_mapping, major_version): +def _get_crb_repos(repo_mapping, flag_source_os): """ - Return set of relevant CRB repoids for the specified major version + Return set of relevant CRB repoids for the source or target OS. - Only CRB repositories for the current architecture and distribution are - relevant. - - :param repo_mapping: RepositoriesMapping message. - :type repo_mapping: RepositoriesMapping - :param major_version: The OS major version. - :type major_version: str + :param repo_mapping: Operator to work with the repositories mapping data + :type repo_mapping: repomap_calc.RepoMapDataHandler + :param flag_source_os: Set True for the source OS, False for the target OS. + :type flag_source_os: bool :returns: A set of repoids with the specified pesid and major version. :rtype: Set[str] """ - pesid = f'rhel{major_version}-CRB' curr_arch = api.current_actor().configuration.architecture - crb_repoids = set() - for pesid_repo in repo_mapping.repositories: - if pesid_repo.major_version != major_version or pesid_repo.arch != curr_arch: - # irrelevant repository - continue - if pesid_repo.pesid == pesid and pesid_repo.major_version == major_version: - crb_repoids.add(pesid_repo.repoid) - return crb_repoids + if flag_source_os: + pesid = 'rhel{}-CRB'.format(get_source_major_version()) + crb_repos = repo_mapping.get_source_pesid_repos(pesid) + else: + pesid = 'rhel{}-CRB'.format(get_target_major_version()) + crb_repos = repo_mapping.get_target_pesid_repos(pesid) + return {repo.repoid for repo in crb_repos if repo.arch == curr_arch} def _are_crb_repos_disabled(repo_mapping, enabled_repoids): """ Checks whether all CRB repositories are disabled. - :param repo_mapping: RepositoriesMapping message. - :type repo_mapping: RepositoriesMapping + :param repo_mapping: Operator to work with the repositories mapping data + :type repo_mapping: repomap_calc.RepoMapDataHandler :param enabled_repoids: Set of repoids enabled on the source system. :type enabled_repoids: Set[str] :returns: False if any CRB repositories are enabled on the source system, True otherwise. :rtype: bool """ - return enabled_repoids.isdisjoint(_get_crb_repos(repo_mapping, get_source_major_version())) + return enabled_repoids.isdisjoint(_get_crb_repos(repo_mapping, True)) def _calc_internal_blocklist(repo_mapping, external_tasks, enabled_repoids): @@ -84,8 +79,8 @@ def _calc_internal_blocklist(repo_mapping, external_tasks, enabled_repoids): Also report explicitly enabled and blocklisted CRB repositories, unless CRB is already already enabled on the source system. - :param repo_mapping: RepositoriesMapping message. - :type repo_mapping: RepositoriesMapping + :param repo_mapping: Operator to work with the repositories mapping data + :type repo_mapping: repomap_calc.RepoMapDataHandler :param external_tasks: External repositories tasks represented by object with following fields: * ``to_enable`` - repositories that should be enabled @@ -102,7 +97,7 @@ def _calc_internal_blocklist(repo_mapping, external_tasks, enabled_repoids): # nothing to do - a CRB repo is enabled return set() - repos_to_exclude = _get_crb_repos(repo_mapping, get_target_major_version()) + repos_to_exclude = _get_crb_repos(repo_mapping, False) # Do not exclude repositories explicitly required by user for the upgrade manually_enabled_repos = external_tasks.custom & repos_to_exclude @@ -149,8 +144,8 @@ def compute_blocklist(repo_mapping, external_tasks, enabled_repoids): the in-place upgrade purpose. Currently there is no explicit custom configuration to disable a repo. - :param repo_mapping: RepositoriesMapping message. - :type repo_mapping: RepositoriesMapping + :param repo_mapping: Operator to work with the repositories mapping data + :type repo_mapping: repomap_calc.RepoMapDataHandler :param external_tasks: External repositories tasks represented by object with following fields: * ``to_enable`` - repositories that should be enabled diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/setuptargetrepos.py b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/setuptargetrepos.py index d6bfb91d..4f7ffd9f 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/setuptargetrepos.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/setuptargetrepos.py @@ -8,7 +8,6 @@ from leapp.models import ( DistroTargetRepository, InstalledRPM, RHELTargetRepository, - RHUIInfo, SkippedRepositories, TargetRepositories, UsedRepositories @@ -58,12 +57,13 @@ def _get_mapped_repoids(repomap, src_repoids): @suppress_deprecation(RHELTargetRepository) -def setup_target_repos(repositories_map_msg, pes_requested_repoids=None, +def setup_target_repos(repomap_handler, pes_requested_repoids=None, blacklisted_repoids=None, external_repoids_requests=None): """ Determine the final list of target repositories. - :param repositories_map_msg: RepositoriesMapping message. + :param repomap_handler: Operator to work with the repositories mapping data + :type repomap_handler: repomap_calc.RepoMapDataHandler :param pes_requested_repoids: Set of repoids derived from PES events that need to be enabled. :param blacklisted_repoids: Set of repoids to exclude from target repos. If None, an empty set is used. :param external_repoids_requests: Set of repoids requested by external actors (e.g. satellite_upgrade_facts). @@ -75,14 +75,6 @@ def setup_target_repos(repositories_map_msg, pes_requested_repoids=None, custom_repos = _get_custom_target_repos() repoids_from_installed_packages = _get_repoids_from_installed_packages() - # Setup repomap handler - repo_mapping_msg = repositories_map_msg - - rhui_info = next(api.consume(RHUIInfo), None) - cloud_provider = rhui_info.provider if rhui_info else '' - - repomap_handler = repomap_calc.RepoMapDataHandler(repo_mapping_msg, cloud_provider=cloud_provider) - # Filter set of repoids from installed packages so that it contains only repoids with mapping repoids_from_installed_packages_with_mapping = _get_mapped_repoids( repomap_handler, repoids_from_installed_packages diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/targetcontentresolver.py b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/targetcontentresolver.py index b66168e6..942a2680 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/libraries/targetcontentresolver.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/libraries/targetcontentresolver.py @@ -2,9 +2,16 @@ from collections import namedtuple from leapp.exceptions import StopActorExecutionError from leapp.libraries.actor import pes_events_scanner, repositoriesblocklist, setuptargetrepos +from leapp.libraries.actor.repomap_calc import RepoMapDataHandler from leapp.libraries.actor.repomap_loader import load_repositories_mapping from leapp.libraries.stdlib import api -from leapp.models import CustomTargetRepository, RepositoriesBlacklisted, RepositoriesFacts, RepositoriesSetupTasks +from leapp.models import ( + CustomTargetRepository, + RepositoriesBlacklisted, + RepositoriesFacts, + RepositoriesSetupTasks, + RHUIInfo +) from leapp.utils.deprecation import suppress_deprecation ExternalRepoSetupTasks = namedtuple('ExternalRepoSetupTasks', ('to_enable', 'to_block', 'custom')) @@ -86,6 +93,13 @@ class InputData(): self.enabled_repoids.add(repo.repoid) +def _init_repomap_handler(): + repomap_msg = load_repositories_mapping() + rhui_info = next(api.consume(RHUIInfo), None) + cloud_provider = rhui_info.provider if rhui_info else '' + return RepoMapDataHandler(repomap_msg, cloud_provider=cloud_provider) + + def process(): """ Orchestrate the four stages of target content resolution. @@ -108,20 +122,20 @@ def process(): configuration. """ indata = InputData() - repositories_map_msg = load_repositories_mapping() + repomap_handler = _init_repomap_handler() blocklisted_repoids = repositoriesblocklist.compute_blocklist( - repositories_map_msg, + repomap_handler, indata.external_tasks, indata.enabled_repoids ) pes_requested_repoids = pes_events_scanner.scan_pes_events( - repositories_map_msg, + repomap_handler, blocklisted_repoids, indata.enabled_repoids ) setuptargetrepos.setup_target_repos( - repositories_map_msg, + repomap_handler, pes_requested_repoids=pes_requested_repoids, blacklisted_repoids=blocklisted_repoids, external_repoids_requests=indata.external_tasks.to_enable, diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_pes_event_scanner.py b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_pes_event_scanner.py index a1f3a6e1..c6f16823 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_pes_event_scanner.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_pes_event_scanner.py @@ -13,6 +13,7 @@ from leapp.libraries.actor.pes_events_scanner import ( reporting, TransactionConfiguration ) +from leapp.libraries.actor.repomap_calc import RepoMapDataHandler from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, produce_mocked from leapp.models import ( DistributionSignedRPM, @@ -265,12 +266,14 @@ def test_actor_performs(monkeypatch): ), ) + repomap_handler = RepoMapDataHandler(repositories_mapping) + produced_messages = produce_mocked() created_report = create_report_mocked() monkeypatch.setattr(api, 'produce', produced_messages) monkeypatch.setattr(reporting, 'create_report', created_report) - pes_events_scanner.scan_pes_events(repositories_mapping, set(), {'rhel8-repo'}) + pes_events_scanner.scan_pes_events(repomap_handler, set(), {'rhel8-repo'}) assert produced_messages.called diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_repositoriesblocklist.py b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_repositoriesblocklist.py index 843c8f74..5a2d1705 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_repositoriesblocklist.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_repositoriesblocklist.py @@ -2,6 +2,7 @@ import pytest from leapp import reporting from leapp.libraries.actor import repositoriesblocklist +from leapp.libraries.actor.repomap_calc import RepoMapDataHandler from leapp.libraries.actor.targetcontentresolver import ExternalRepoSetupTasks from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, produce_mocked from leapp.libraries.stdlib import api @@ -56,8 +57,9 @@ def test_crb_repos_blocked_when_no_crb_on_source(monkeypatch, repomap_opts_only) )) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) + handler = RepoMapDataHandler(repomap_opts_only) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, _NO_TASKS, enabled_repoids={'rhel-8-server-rpms'} + handler, _NO_TASKS, enabled_repoids={'rhel-8-server-rpms'} ) assert 'codeready-builder-for-rhel-9-x86_64-rpms' in result @@ -74,8 +76,9 @@ def test_empty_result_when_no_crb_pesid_in_mapping(monkeypatch, repomap_opts_onl )) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) + handler = RepoMapDataHandler(repomap_opts_only) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, _NO_TASKS, enabled_repoids=set() + handler, _NO_TASKS, enabled_repoids=set() ) assert not result @@ -90,8 +93,9 @@ def test_blocklist_generated_when_crb_disabled(monkeypatch, repomap_opts_only): )) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) + handler = RepoMapDataHandler(repomap_opts_only) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, _NO_TASKS, enabled_repoids=set() + handler, _NO_TASKS, enabled_repoids=set() ) assert result, 'A blocklist should get generated.' @@ -109,8 +113,9 @@ def test_no_blocklist_when_crb_enabled_on_source(monkeypatch, repomap_opts_only) arch='x86_64', src_ver='8.10', dst_ver='9.6', dst_distro='rhel' )) + handler = RepoMapDataHandler(repomap_opts_only) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, _NO_TASKS, + handler, _NO_TASKS, enabled_repoids={'codeready-builder-for-rhel-8-x86_64-rpms'} ) @@ -198,8 +203,9 @@ def test_custom_enablerepo_effect(monkeypatch, repomap_opts_only, to_enable=set(), to_block=set(), custom=custom_repoids ) + handler = RepoMapDataHandler(repomap_opts_only) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, external_tasks, enabled_repoids=set() + handler, external_tasks, enabled_repoids=set() ) if exp_report_title: @@ -232,21 +238,38 @@ def test_get_crb_repos_filters_by_architecture(monkeypatch): ), ] repo_mapping = RepositoriesMapping(mapping=[], repositories=repos) + handler = RepoMapDataHandler(repo_mapping) - result = repositoriesblocklist._get_crb_repos(repo_mapping, '9') + result = repositoriesblocklist._get_crb_repos(handler, False) assert result == {'crb-x86_64'} -def test_no_report_for_non_rhel_distro(monkeypatch, repomap_opts_only): +def test_no_report_for_non_rhel_distro(monkeypatch): """No exclusion report generated for non-RHEL distros, but repos are still excluded.""" monkeypatch.setattr(api, 'current_actor', CurrentActorMocked( - arch='x86_64', src_ver='8.10', dst_ver='9.6', dst_distro='centos' + arch='x86_64', src_ver='8.10', dst_ver='9.6', src_distro='centos', dst_distro='centos' )) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) + centos_repomap = RepositoriesMapping( + mapping=[RepoMapEntry(source='rhel8-CRB', target=['rhel9-CRB'])], + repositories=[ + PESIDRepositoryEntry( + pesid='rhel8-CRB', major_version='8', + repoid='codeready-builder-for-centos-8-x86_64-rpms', + rhui='', arch='x86_64', channel='ga', repo_type='rpm', distro='centos', + ), + PESIDRepositoryEntry( + pesid='rhel9-CRB', major_version='9', + repoid='codeready-builder-for-centos-9-x86_64-rpms', + rhui='', arch='x86_64', channel='ga', repo_type='rpm', distro='centos', + ), + ] + ) + handler = RepoMapDataHandler(centos_repomap) result = repositoriesblocklist._calc_internal_blocklist( - repomap_opts_only, _NO_TASKS, enabled_repoids=set() + handler, _NO_TASKS, enabled_repoids=set() ) assert result diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_setuptargetrepos.py b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_setuptargetrepos.py index 652bf30a..5192e65a 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_setuptargetrepos.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_setuptargetrepos.py @@ -1,6 +1,7 @@ import pytest from leapp.libraries.actor import setuptargetrepos +from leapp.libraries.actor.repomap_calc import RepoMapDataHandler from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked from leapp.libraries.stdlib import api from leapp.models import ( @@ -27,14 +28,13 @@ def test_minimal_execution(monkeypatch): """ Tests whether the actor does not fail if no messages except the RepositoriesMapping are provided. """ - msgs = [ - RepositoriesMapping(mapping=[], repositories=[]) - ] + repos_mapping = RepositoriesMapping(mapping=[], repositories=[]) + msgs = [repos_mapping] monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=msgs)) monkeypatch.setattr(api, 'produce', produce_mocked()) - setuptargetrepos.setup_target_repos(msgs[0]) + setuptargetrepos.setup_target_repos(RepoMapDataHandler(repos_mapping)) def test_custom_repos(monkeypatch): @@ -62,7 +62,8 @@ def test_custom_repos(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=msgs)) monkeypatch.setattr(api, 'produce', produce_mocked()) - setuptargetrepos.setup_target_repos(repositories_mapping, blacklisted_repoids={'rhel-8-blacklisted-rpms'}) + handler = RepoMapDataHandler(repositories_mapping) + setuptargetrepos.setup_target_repos(handler, blacklisted_repoids={'rhel-8-blacklisted-rpms'}) assert api.produce.called @@ -82,8 +83,9 @@ def test_repositories_setup_tasks(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=msgs)) monkeypatch.setattr(api, 'produce', produce_mocked()) + handler = RepoMapDataHandler(repositories_mapping) setuptargetrepos.setup_target_repos( - repositories_mapping, + handler, blacklisted_repoids={'rhel-8-blacklisted-rpms'}, external_repoids_requests={'rhel-8-server-rpms', 'rhel-8-blacklisted-rpms'}) @@ -192,7 +194,8 @@ def test_repos_mapping_for_distro(monkeypatch, src_distro, dst_distro): ) monkeypatch.setattr(api, 'produce', produce_mocked()) - setuptargetrepos.setup_target_repos(repomap, blacklisted_repoids={'{}-9-blacklisted-rpms'.format(dst_distro)}) + handler = RepoMapDataHandler(repomap) + setuptargetrepos.setup_target_repos(handler, blacklisted_repoids={'{}-9-blacklisted-rpms'.format(dst_distro)}) assert api.produce.called distro_repos = api.produce.model_instances[0].distro_repos @@ -228,8 +231,9 @@ def test_pes_requested_repoids_added_to_target(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=msgs)) monkeypatch.setattr(api, 'produce', produce_mocked()) + handler = RepoMapDataHandler(repositories_mapping) setuptargetrepos.setup_target_repos( - repositories_mapping, + handler, pes_requested_repoids={'pes-repo-1', 'pes-repo-2', 'pes-blocked'}, blacklisted_repoids={'pes-blocked'}, ) @@ -255,8 +259,9 @@ def test_pes_and_external_repoids_combined(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=msgs)) monkeypatch.setattr(api, 'produce', produce_mocked()) + handler = RepoMapDataHandler(repositories_mapping) setuptargetrepos.setup_target_repos( - repositories_mapping, + handler, pes_requested_repoids={'pes-repo'}, blacklisted_repoids={'blocked-repo'}, external_repoids_requests={'ext-repo', 'blocked-repo'}, diff --git a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_targetcontentresolver.py b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_targetcontentresolver.py index 970fd797..750f6f9e 100644 --- a/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_targetcontentresolver.py +++ b/repos/system_upgrade/common/actors/targetcontentresolver/tests/test_targetcontentresolver.py @@ -23,7 +23,7 @@ def test_process_orchestration(monkeypatch): """ call_log = [] - fake_repo_map = object() + fake_repomap_handler = object() fake_blocklist = frozenset({'blocked-repo'}) fake_external_tasks = ExternalRepoSetupTasks( to_enable=frozenset({'ext-repo'}), to_block=frozenset(), custom=frozenset() @@ -37,20 +37,20 @@ def test_process_orchestration(monkeypatch): self.external_tasks = fake_external_tasks self.enabled_repoids = fake_enabled_repoids - def mock_load_repositories_mapping(): - call_log.append('load_repositories_mapping') - return fake_repo_map + def mock_init_repomap_handler(): + call_log.append('_init_repomap_handler') + return fake_repomap_handler def mock_compute_blocklist(repo_mapping, external_tasks, enabled_repoids): call_log.append('compute_blocklist') - assert repo_mapping is fake_repo_map + assert repo_mapping is fake_repomap_handler assert external_tasks is fake_external_tasks assert enabled_repoids is fake_enabled_repoids return fake_blocklist def mock_scan_pes_events(repo_mapping, blacklisted_repoids, enabled_repoids): call_log.append('scan_pes_events') - assert repo_mapping is fake_repo_map + assert repo_mapping is fake_repomap_handler assert blacklisted_repoids is fake_blocklist assert enabled_repoids is fake_enabled_repoids return fake_pes_repoids @@ -58,7 +58,7 @@ def test_process_orchestration(monkeypatch): def mock_setup_target_repos(repo_mapping, pes_requested_repoids=None, blacklisted_repoids=None, external_repoids_requests=None): call_log.append('setup_target_repos') - assert repo_mapping is fake_repo_map + assert repo_mapping is fake_repomap_handler assert pes_requested_repoids is fake_pes_repoids assert blacklisted_repoids is fake_blocklist assert external_repoids_requests is fake_external_tasks.to_enable @@ -68,8 +68,8 @@ def test_process_orchestration(monkeypatch): FakeInputData, ) monkeypatch.setattr( - 'leapp.libraries.actor.targetcontentresolver.load_repositories_mapping', - mock_load_repositories_mapping, + 'leapp.libraries.actor.targetcontentresolver._init_repomap_handler', + mock_init_repomap_handler, ) monkeypatch.setattr( 'leapp.libraries.actor.targetcontentresolver.repositoriesblocklist.compute_blocklist', @@ -88,7 +88,7 @@ def test_process_orchestration(monkeypatch): assert call_log == [ 'InputData', - 'load_repositories_mapping', + '_init_repomap_handler', 'compute_blocklist', 'scan_pes_events', 'setup_target_repos', -- 2.54.0