mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-06-28 06:41:43 +00:00
handle packages load from aur by package name also
In general package names array may not contain package base, thus it leads to inability to load packages from aur by its base during update process
This commit is contained in:
@ -2,7 +2,9 @@ import pytest
|
||||
|
||||
from pathlib import Path
|
||||
from pytest_mock import MockerFixture
|
||||
from typing import Any
|
||||
|
||||
from ahriman.core.exceptions import UnknownPackageError
|
||||
from ahriman.core.repository.update_handler import UpdateHandler
|
||||
from ahriman.models.package import Package
|
||||
from ahriman.models.package_source import PackageSource
|
||||
@ -107,6 +109,35 @@ def test_updates_aur_ignore_vcs(update_handler: UpdateHandler, package_ahriman:
|
||||
calculate_version=False)
|
||||
|
||||
|
||||
def test_updates_aur_load_by_package(update_handler: UpdateHandler, package_python_schedule: Package,
|
||||
mocker: MockerFixture) -> None:
|
||||
"""
|
||||
must load package by package name if none found by base
|
||||
"""
|
||||
def package_selector(name: str, *_: Any) -> Package:
|
||||
if name == package_python_schedule.base:
|
||||
raise UnknownPackageError(name)
|
||||
return package_python_schedule
|
||||
|
||||
mocker.patch("ahriman.core.repository.update_handler.UpdateHandler.packages",
|
||||
return_value=[package_python_schedule])
|
||||
mocker.patch("ahriman.models.package.Package.from_aur", side_effect=package_selector)
|
||||
mocker.patch("ahriman.models.package.Package.is_outdated", return_value=True)
|
||||
assert update_handler.updates_aur([], vcs=True) == [package_python_schedule]
|
||||
|
||||
|
||||
def test_updates_load_by_package_aur_failed(update_handler: UpdateHandler, package_ahriman: Package,
|
||||
mocker: MockerFixture) -> None:
|
||||
"""
|
||||
must update status via client for failed load
|
||||
"""
|
||||
mocker.patch("ahriman.core.repository.update_handler.UpdateHandler.packages", return_value=[package_ahriman])
|
||||
mocker.patch("ahriman.models.package.Package.from_aur", side_effect=UnknownPackageError(package_ahriman.base))
|
||||
mocker.patch("ahriman.core.status.client.Client.set_failed")
|
||||
|
||||
update_handler.updates_aur([], vcs=True)
|
||||
|
||||
|
||||
def test_updates_local(update_handler: UpdateHandler, package_ahriman: Package, mocker: MockerFixture) -> None:
|
||||
"""
|
||||
must check for updates for locally stored packages
|
||||
|
Reference in New Issue
Block a user