set success status on up to date packages

This commit is contained in:
Evgenii Alekseev 2022-02-06 06:22:58 +03:00
parent e414616bbd
commit 026f74121a
2 changed files with 33 additions and 0 deletions

View File

@ -59,6 +59,7 @@ class UpdateHandler(Cleaner):
if local.is_outdated(remote, self.paths):
self.reporter.set_pending(local.base)
result.append(remote)
self.reporter.set_success(local)
except Exception:
self.reporter.set_failed(local.base)
self.logger.exception("could not load remote package %s", local.base)
@ -86,6 +87,8 @@ class UpdateHandler(Cleaner):
elif local.is_outdated(remote, self.paths):
self.reporter.set_pending(local.base)
result.append(remote)
else:
self.reporter.set_success(local)
except Exception:
self.logger.exception("could not procees package at %s", dirname)

View File

@ -28,6 +28,20 @@ def test_updates_aur(update_handler: UpdateHandler, package_ahriman: Package,
status_client_mock.assert_called_once()
def test_updates_aur_success(update_handler: UpdateHandler, package_ahriman: Package,
mocker: MockerFixture) -> None:
"""
must provide updates with status updates
"""
mocker.patch("ahriman.core.repository.update_handler.UpdateHandler.packages", return_value=[package_ahriman])
mocker.patch("ahriman.models.package.Package.is_outdated", return_value=False)
mocker.patch("ahriman.models.package.Package.load", return_value=package_ahriman)
status_client_mock = mocker.patch("ahriman.core.status.client.Client.set_success")
assert not update_handler.updates_aur([], False)
status_client_mock.assert_called_once_with(package_ahriman)
def test_updates_aur_failed(update_handler: UpdateHandler, package_ahriman: Package,
mocker: MockerFixture) -> None:
"""
@ -125,6 +139,22 @@ def test_updates_local_with_failures(update_handler: UpdateHandler, package_ahri
assert not update_handler.updates_local()
def test_updates_local_success(update_handler: UpdateHandler, package_ahriman: Package,
mocker: MockerFixture) -> None:
"""
must set success status for up-to-date packages
"""
mocker.patch("ahriman.core.repository.update_handler.UpdateHandler.packages", return_value=[package_ahriman])
mocker.patch("pathlib.Path.iterdir", return_value=[package_ahriman.base])
mocker.patch("ahriman.models.package.Package.is_outdated", return_value=False)
mocker.patch("ahriman.core.build_tools.sources.Sources.fetch")
mocker.patch("ahriman.models.package.Package.load", return_value=package_ahriman)
status_client_mock = mocker.patch("ahriman.core.status.client.Client.set_success")
assert not update_handler.updates_local()
status_client_mock.assert_called_once_with(package_ahriman)
def test_updates_manual_clear(update_handler: UpdateHandler, mocker: MockerFixture) -> None:
"""
requesting manual updates must clear packages directory