mirror of
				https://github.com/arcan1s/ahriman.git
				synced 2025-10-31 05:43:41 +00:00 
			
		
		
		
	feat: calculate changes on package addition as well
This commit is contained in:
		| @ -266,6 +266,8 @@ def _set_package_add_parser(root: SubParserAction) -> argparse.ArgumentParser: | ||||
|                                     "5) and finally you can add package from AUR.", | ||||
|                              formatter_class=_formatter) | ||||
|     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", | ||||
|                         action=argparse.BooleanOptionalAction, default=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", | ||||
|                              formatter_class=_formatter) | ||||
|     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. " | ||||
|                                           "Only applicable in dry run mode", | ||||
|     parser.add_argument("--changes", help="calculate changes from the latest known commit if available", | ||||
|                         action=argparse.BooleanOptionalAction, default=True) | ||||
|     parser.add_argument("--check-files", help="enable or disable checking of broken dependencies " | ||||
|                                               "(e.g. dynamically linked libraries or modules directories)", | ||||
|  | ||||
| @ -57,6 +57,9 @@ class Add(Handler): | ||||
|             return | ||||
|  | ||||
|         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) | ||||
|         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 | ||||
|     """ | ||||
|     args.package = ["ahriman"] | ||||
|     args.changes = True | ||||
|     args.exit_code = False | ||||
|     args.increment = True | ||||
|     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) | ||||
|     application_mock = mocker.patch("ahriman.application.application.Application.update", return_value=result) | ||||
|     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]) | ||||
|     dependencies_mock = mocker.patch("ahriman.application.application.Application.with_dependencies", | ||||
|                                      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) | ||||
|     updates_mock.assert_called_once_with(args.package, | ||||
|                                          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], | ||||
|                                              Packagers(args.username, {package_ahriman.base: "packager"}), | ||||
|                                              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)) | ||||
|  | ||||
|  | ||||
| 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, | ||||
|                              mocker: MockerFixture) -> None: | ||||
|     """ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user