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
|
# build package list based on user input
|
||||||
result = Result()
|
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():
|
for local in self.packages():
|
||||||
if local.base in packages or all(package in requested for package in local.packages):
|
if local.base in packages or all(package in requested for package in local.packages):
|
||||||
packages_to_remove.update({
|
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
|
# 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
|
# 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:
|
if unknown in packages_to_remove or unknown in bases_to_remove:
|
||||||
continue
|
continue
|
||||||
bases_to_remove.append(unknown)
|
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)
|
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,
|
def test_process_remove_base_multiple(executor: Executor, package_python_schedule: Package,
|
||||||
mocker: MockerFixture) -> None:
|
mocker: MockerFixture) -> None:
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user