mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 15:27:17 +00:00
fix: remove debug packages together with normal ones (#124)
This commit is contained in:
parent
f01f35238d
commit
cf2e66a934
@ -117,7 +117,8 @@ class Executor(PackageInfo, Cleaner):
|
||||
|
||||
# build package list based on user input
|
||||
result = Result()
|
||||
requested = set(packages)
|
||||
packages = set(packages) # remove duplicates
|
||||
requested = packages | {f"{package}-debug" for package in packages} # append debug packages
|
||||
for local in self.packages():
|
||||
if local.base in packages or all(package in requested for package in local.packages):
|
||||
packages_to_remove.update({
|
||||
@ -136,7 +137,7 @@ class Executor(PackageInfo, Cleaner):
|
||||
|
||||
# check for packages which were requested to remove, but weren't found locally
|
||||
# it might happen for example, if there were no success build before
|
||||
for unknown in requested:
|
||||
for unknown in packages:
|
||||
if unknown in packages_to_remove or unknown in bases_to_remove:
|
||||
continue
|
||||
bases_to_remove.append(unknown)
|
||||
|
@ -89,6 +89,28 @@ def test_process_remove_base(executor: Executor, package_ahriman: Package, mocke
|
||||
commit_sha_mock.assert_called_once_with(package_ahriman.base)
|
||||
|
||||
|
||||
def test_process_remove_with_debug(executor: Executor, package_ahriman: Package, mocker: MockerFixture) -> None:
|
||||
"""
|
||||
must run remove debug packages too
|
||||
"""
|
||||
package_ahriman.packages = {
|
||||
package_ahriman.base: package_ahriman.packages[package_ahriman.base],
|
||||
f"{package_ahriman.base}-debug": package_ahriman.packages[package_ahriman.base],
|
||||
}
|
||||
mocker.patch("ahriman.core.repository.executor.Executor.packages", return_value=[package_ahriman])
|
||||
mocker.patch("ahriman.models.repository_paths.RepositoryPaths.tree_clear")
|
||||
mocker.patch("ahriman.core.database.SQLite.package_clear")
|
||||
mocker.patch("ahriman.core.status.client.Client.package_remove")
|
||||
repo_remove_mock = mocker.patch("ahriman.core.alpm.repo.Repo.remove")
|
||||
|
||||
executor.process_remove([package_ahriman.base])
|
||||
# must remove via alpm wrapper
|
||||
repo_remove_mock.assert_has_calls([
|
||||
MockCall(package_ahriman.base, package_ahriman.packages[package_ahriman.base].filepath),
|
||||
MockCall(f"{package_ahriman.base}-debug", package_ahriman.packages[package_ahriman.base].filepath),
|
||||
])
|
||||
|
||||
|
||||
def test_process_remove_base_multiple(executor: Executor, package_python_schedule: Package,
|
||||
mocker: MockerFixture) -> None:
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user