From 799dc73d8a5b98bd9204ac6bdbd0fb711cbfb7e1 Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Mon, 26 Jan 2026 01:56:30 +0200 Subject: [PATCH] feat: update package status to success in case if package is up-to-date --- src/ahriman/core/repository/update_handler.py | 6 +++++- .../core/repository/test_update_handler.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/ahriman/core/repository/update_handler.py b/src/ahriman/core/repository/update_handler.py index ba096bba..d5ee20b2 100644 --- a/src/ahriman/core/repository/update_handler.py +++ b/src/ahriman/core/repository/update_handler.py @@ -23,6 +23,7 @@ from ahriman.core.build_tools.sources import Sources from ahriman.core.exceptions import UnknownPackageError from ahriman.core.repository.cleaner import Cleaner from ahriman.core.repository.package_info import PackageInfo +from ahriman.models.build_status import BuildStatusEnum from ahriman.models.event import EventType from ahriman.models.package import Package from ahriman.models.package_source import PackageSource @@ -71,6 +72,8 @@ class UpdateHandler(PackageInfo, Cleaner): self.reporter.set_pending(local.base) self.event(local.base, EventType.PackageOutdated, "Remote version is newer than local") result.append(remote) + else: + self.reporter.package_status_update(local.base, BuildStatusEnum.Success) except Exception: self.reporter.set_failed(local.base) self.logger.exception("could not load remote package %s", local.base) @@ -79,7 +82,8 @@ class UpdateHandler(PackageInfo, Cleaner): def updates_dependencies(self, filter_packages: Iterable[str]) -> list[Package]: """ - check packages which ae required to be rebuilt based on dynamic dependencies (e.g. linking, modules paths, etc.) + check packages which are required to be rebuilt based on dynamic dependencies + (e.g. linking, modules paths, etc.) Args: filter_packages(Iterable[str]): do not check every package just specified in the list diff --git a/tests/ahriman/core/repository/test_update_handler.py b/tests/ahriman/core/repository/test_update_handler.py index 8b6e4bcb..3367d3e3 100644 --- a/tests/ahriman/core/repository/test_update_handler.py +++ b/tests/ahriman/core/repository/test_update_handler.py @@ -6,6 +6,7 @@ from typing import Any from ahriman.core.exceptions import UnknownPackageError from ahriman.core.repository.update_handler import UpdateHandler +from ahriman.models.build_status import BuildStatusEnum from ahriman.models.dependencies import Dependencies from ahriman.models.event import EventType from ahriman.models.package import Package @@ -66,6 +67,20 @@ def test_updates_aur_failed(update_handler: UpdateHandler, package_ahriman: Pack status_client_mock.assert_called_once_with(package_ahriman.base) +def test_updates_aur_up_to_date(update_handler: UpdateHandler, package_ahriman: Package, + mocker: MockerFixture) -> None: + """ + must set success status for packages which are not out-of-dated + """ + mocker.patch("ahriman.core.repository.update_handler.UpdateHandler.packages", return_value=[package_ahriman]) + mocker.patch("ahriman.models.package.Package.from_aur", return_value=package_ahriman) + mocker.patch("ahriman.models.package.Package.is_outdated", return_value=False) + status_client_mock = mocker.patch("ahriman.core.status.local_client.LocalClient.package_status_update") + + assert update_handler.updates_aur([], vcs=True) == [] + status_client_mock.assert_called_once_with(package_ahriman.base, BuildStatusEnum.Success) + + def test_updates_aur_local(update_handler: UpdateHandler, package_ahriman: Package, mocker: MockerFixture) -> None: """