コード例 #1
0
def test_updates_aur_ignore(update_handler: UpdateHandler,
                            package_ahriman: Package,
                            mocker: MockerFixture) -> None:
    """
    must skip ignore packages
    """
    update_handler.ignore_list = [package_ahriman.base]
    mocker.patch(
        "ahriman.core.repository.update_handler.UpdateHandler.packages",
        return_value=[package_ahriman])
    package_load_mock = mocker.patch("ahriman.models.package.Package.load")

    update_handler.updates_aur([], False)
    package_load_mock.assert_not_called()
コード例 #2
0
def test_updates_aur_ignore_vcs(update_handler: UpdateHandler,
                                package_ahriman: Package,
                                mocker: MockerFixture) -> None:
    """
    must skip VCS packages check if requested
    """
    mocker.patch(
        "ahriman.core.repository.update_handler.UpdateHandler.packages",
        return_value=[package_ahriman])
    mocker.patch("ahriman.models.package.Package.is_vcs", return_value=True)
    package_is_outdated_mock = mocker.patch(
        "ahriman.models.package.Package.is_outdated")

    update_handler.updates_aur([], True)
    package_is_outdated_mock.assert_not_called()
コード例 #3
0
def test_updates_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.load",
                 side_effect=Exception())
    status_client_mock = mocker.patch(
        "ahriman.core.status.client.Client.set_failed")

    update_handler.updates_aur([], False)
    status_client_mock.assert_called_once()
コード例 #4
0
def test_updates_aur(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=True)
    mocker.patch("ahriman.models.package.Package.load",
                 return_value=package_ahriman)
    status_client_mock = mocker.patch(
        "ahriman.core.status.client.Client.set_pending")

    assert update_handler.updates_aur([], False) == [package_ahriman]
    status_client_mock.assert_called_once()
コード例 #5
0
def test_updates_aur_filter(update_handler: UpdateHandler,
                            package_ahriman: Package,
                            package_python_schedule: Package,
                            mocker: MockerFixture) -> None:
    """
    must provide updates only for filtered packages
    """
    mocker.patch(
        "ahriman.core.repository.update_handler.UpdateHandler.packages",
        return_value=[package_ahriman, package_python_schedule])
    mocker.patch("ahriman.models.package.Package.is_outdated",
                 return_value=True)
    package_load_mock = mocker.patch("ahriman.models.package.Package.load",
                                     return_value=package_ahriman)

    assert update_handler.updates_aur([package_ahriman.base],
                                      False) == [package_ahriman]
    package_load_mock.assert_called_once()