From a428b7fbc5cdcfaea68dc69bad258ce9cb21fbe5 Mon Sep 17 00:00:00 2001 From: Pavla Kratochvilova Date: Wed, 6 Nov 2024 13:58:16 +0100 Subject: [PATCH] Reset the dnf base when clearing cache To reset the repo sack, the whole base must be created anew, because it is not possible to lead repositories multiple times in dnf5. --- pyanaconda/modules/payloads/payload/dnf/dnf_manager.py | 3 +-- .../payloads/payload/test_module_payload_dnf5_manager.py | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py index e331783c0d9..45c3b87094f 100644 --- a/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py +++ b/pyanaconda/modules/payloads/payload/dnf/dnf_manager.py @@ -541,8 +541,7 @@ def clear_cache(self): shutil.rmtree(DNF_CACHE_DIR, ignore_errors=True) shutil.rmtree(DNF_PLUGINCONF_DIR, ignore_errors=True) - # FIXME: Reset sacks. Should we just drop the base? - # self._base.reset(sack=True, repos=True, goal=True) + self.reset_base() log.debug("The DNF cache has been cleared.") diff --git a/tests/unit_tests/pyanaconda_tests/modules/payloads/payload/test_module_payload_dnf5_manager.py b/tests/unit_tests/pyanaconda_tests/modules/payloads/payload/test_module_payload_dnf5_manager.py index dfdb34c3706..d7d083bd8ad 100644 --- a/tests/unit_tests/pyanaconda_tests/modules/payloads/payload/test_module_payload_dnf5_manager.py +++ b/tests/unit_tests/pyanaconda_tests/modules/payloads/payload/test_module_payload_dnf5_manager.py @@ -995,10 +995,10 @@ def test_read_system_repositories(self): with pytest.raises(RuntimeError): self.dnf_manager.read_system_repositories() - # FIXME: Unless we cleared the cache. - # self.dnf_manager.clear_cache() - # assert not self.dnf_manager._enabled_system_repositories - # self.dnf_manager.read_system_repositories() + # Unless we cleared the cache. + self.dnf_manager.clear_cache() + assert not self.dnf_manager._enabled_system_repositories + self.dnf_manager.read_system_repositories() # Or reset the base. self.dnf_manager.reset_base()