mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
feat: calculate changes on package addition as well
This commit is contained in:
parent
7a3d32dcfa
commit
0fa748f302
@ -266,6 +266,8 @@ def _set_package_add_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
"5) and finally you can add package from AUR.",
|
"5) and finally you can add package from AUR.",
|
||||||
formatter_class=_formatter)
|
formatter_class=_formatter)
|
||||||
parser.add_argument("package", help="package source (base name, path to local files, remote URL)", nargs="+")
|
parser.add_argument("package", help="package source (base name, path to local files, remote URL)", nargs="+")
|
||||||
|
parser.add_argument("--changes", help="calculate changes from the latest known commit if available",
|
||||||
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("--dependencies", help="process missing package dependencies",
|
parser.add_argument("--dependencies", help="process missing package dependencies",
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
parser.add_argument("-e", "--exit-code", help="return non-zero exit status if result is empty", action="store_true")
|
||||||
@ -534,8 +536,7 @@ def _set_repo_check_parser(root: SubParserAction) -> argparse.ArgumentParser:
|
|||||||
description="check for packages updates. Same as repo-update --dry-run --no-manual",
|
description="check for packages updates. Same as repo-update --dry-run --no-manual",
|
||||||
formatter_class=_formatter)
|
formatter_class=_formatter)
|
||||||
parser.add_argument("package", help="filter check by package base", nargs="*")
|
parser.add_argument("package", help="filter check by package base", nargs="*")
|
||||||
parser.add_argument("--changes", help="calculate changes from the latest known commit if available. "
|
parser.add_argument("--changes", help="calculate changes from the latest known commit if available",
|
||||||
"Only applicable in dry run mode",
|
|
||||||
action=argparse.BooleanOptionalAction, default=True)
|
action=argparse.BooleanOptionalAction, default=True)
|
||||||
parser.add_argument("--check-files", help="enable or disable checking of broken dependencies "
|
parser.add_argument("--check-files", help="enable or disable checking of broken dependencies "
|
||||||
"(e.g. dynamically linked libraries or modules directories)",
|
"(e.g. dynamically linked libraries or modules directories)",
|
||||||
|
@ -57,6 +57,9 @@ class Add(Handler):
|
|||||||
return
|
return
|
||||||
|
|
||||||
packages = application.updates(args.package, aur=False, local=False, manual=True, vcs=False, check_files=False)
|
packages = application.updates(args.package, aur=False, local=False, manual=True, vcs=False, check_files=False)
|
||||||
|
if args.changes: # generate changes if requested
|
||||||
|
application.changes(packages)
|
||||||
|
|
||||||
packages = application.with_dependencies(packages, process_dependencies=args.dependencies)
|
packages = application.with_dependencies(packages, process_dependencies=args.dependencies)
|
||||||
packagers = Packagers(args.username, {package.base: package.packager for package in packages})
|
packagers = Packagers(args.username, {package.base: package.packager for package in packages})
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ def _default_args(args: argparse.Namespace) -> argparse.Namespace:
|
|||||||
argparse.Namespace: generated arguments for these test cases
|
argparse.Namespace: generated arguments for these test cases
|
||||||
"""
|
"""
|
||||||
args.package = ["ahriman"]
|
args.package = ["ahriman"]
|
||||||
|
args.changes = True
|
||||||
args.exit_code = False
|
args.exit_code = False
|
||||||
args.increment = True
|
args.increment = True
|
||||||
args.now = False
|
args.now = False
|
||||||
@ -82,6 +83,7 @@ def test_run_with_updates(args: argparse.Namespace, configuration: Configuration
|
|||||||
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result)
|
||||||
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
check_mock = mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
|
changes_mock = mocker.patch("ahriman.application.application.Application.changes")
|
||||||
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
updates_mock = mocker.patch("ahriman.application.application.Application.updates", return_value=[package_ahriman])
|
||||||
dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies",
|
dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies",
|
||||||
return_value=[package_ahriman])
|
return_value=[package_ahriman])
|
||||||
@ -91,6 +93,7 @@ def test_run_with_updates(args: argparse.Namespace, configuration: Configuration
|
|||||||
Add.run(args, repository_id, configuration, report=False)
|
Add.run(args, repository_id, configuration, report=False)
|
||||||
updates_mock.assert_called_once_with(args.package,
|
updates_mock.assert_called_once_with(args.package,
|
||||||
aur=False, local=False, manual=True, vcs=False, check_files=False)
|
aur=False, local=False, manual=True, vcs=False, check_files=False)
|
||||||
|
changes_mock.assert_called_once_with([package_ahriman])
|
||||||
application_mock.assert_called_once_with([package_ahriman],
|
application_mock.assert_called_once_with([package_ahriman],
|
||||||
Packagers(args.username, {package_ahriman.base: "packager"}),
|
Packagers(args.username, {package_ahriman.base: "packager"}),
|
||||||
bump_pkgrel=args.increment)
|
bump_pkgrel=args.increment)
|
||||||
@ -99,6 +102,28 @@ def test_run_with_updates(args: argparse.Namespace, configuration: Configuration
|
|||||||
print_mock.assert_called_once_with([package_ahriman], log_fn=pytest.helpers.anyvar(int))
|
print_mock.assert_called_once_with([package_ahriman], log_fn=pytest.helpers.anyvar(int))
|
||||||
|
|
||||||
|
|
||||||
|
def test_run_no_changes(args: argparse.Namespace, configuration: Configuration, repository: Repository,
|
||||||
|
mocker: MockerFixture) -> None:
|
||||||
|
"""
|
||||||
|
must skip changes calculation during package addition
|
||||||
|
"""
|
||||||
|
args = _default_args(args)
|
||||||
|
args.now = True
|
||||||
|
args.changes = False
|
||||||
|
mocker.patch("ahriman.application.application.Application.add")
|
||||||
|
mocker.patch("ahriman.core.repository.Repository.load", return_value=repository)
|
||||||
|
mocker.patch("ahriman.application.application.Application.update")
|
||||||
|
mocker.patch("ahriman.application.handlers.Handler.check_if_empty")
|
||||||
|
mocker.patch("ahriman.application.application.Application.updates")
|
||||||
|
mocker.patch("ahriman.application.application.Application.with_dependencies")
|
||||||
|
mocker.patch("ahriman.application.application.Application.print_updates")
|
||||||
|
changes_mock = mocker.patch("ahriman.application.application.Application.changes")
|
||||||
|
|
||||||
|
_, repository_id = configuration.check_loaded()
|
||||||
|
Add.run(args, repository_id, configuration, report=False)
|
||||||
|
changes_mock.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
def test_run_empty_exception(args: argparse.Namespace, configuration: Configuration, repository: Repository,
|
def test_run_empty_exception(args: argparse.Namespace, configuration: Configuration, repository: Repository,
|
||||||
mocker: MockerFixture) -> None:
|
mocker: MockerFixture) -> None:
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user