def test_update_with_package_and_sections_argument(project): actions.do_add(project, packages=["requests", "pytz"]) with pytest.raises(PdmUsageError): actions.do_update(project, sections=("default", "dev"), packages=("requests",)) with pytest.raises(PdmUsageError): actions.do_update(project, default=False, packages=("requests",))
def test_update_all_packages(project, repository, capsys, strategy): actions.do_add(project, packages=["requests", "pytz"]) repository.add_candidate("pytz", "2019.6") repository.add_candidate("chardet", "3.0.5") repository.add_candidate("requests", "2.20.0") repository.add_dependencies( "requests", "2.20.0", [ "certifi>=2017.4.17", "chardet<3.1.0,>=3.0.2", "idna<2.8,>=2.5", "urllib3<1.24,>=1.21.1", ], ) actions.do_update(project, strategy=strategy) locked_candidates = project.locked_repository.all_candidates assert locked_candidates["requests"].version == "2.20.0" assert locked_candidates["chardet"].version == ("3.0.5" if strategy == "all" else "3.0.4") assert locked_candidates["pytz"].version == "2019.6" out, _ = capsys.readouterr() update_num = 3 if strategy == "all" else 2 assert f"{update_num} to update" in out, out actions.do_sync(project) out, _ = capsys.readouterr() assert "All packages are synced to date" in out
def test_update_all_packages(project, repository, capsys): actions.do_add(project, packages=["requests", "pytz"]) repository.add_candidate("pytz", "2019.6") repository.add_candidate("chardet", "3.0.5") repository.add_candidate("requests", "2.20.0") repository.add_dependencies( "requests", "2.20.0", [ "certifi>=2017.4.17", "chardet<3.1.0,>=3.0.2", "idna<2.8,>=2.5", "urllib3<1.24,>=1.21.1", ], ) actions.do_update(project) locked_candidates = project.get_locked_candidates() assert locked_candidates["requests"].version == "2.20.0" assert locked_candidates["chardet"].version == "3.0.5" assert locked_candidates["pytz"].version == "2019.6" out, _ = capsys.readouterr() assert "3 to update" in out actions.do_sync(project) out, _ = capsys.readouterr() assert "All packages are synced to date" in out
def test_update_with_package_and_sections_argument(project, repository, working_set): actions.do_add(project, packages=["requests", "pytz"]) with pytest.raises(click.BadParameter): actions.do_update(project, sections=("default", "dev"), packages=("requests", )) with pytest.raises(click.BadParameter): actions.do_update(project, default=False, packages=("requests", ))
def handle(self, project: Project, options: argparse.Namespace) -> None: actions.do_update( project, dev=options.dev, sections=options.sections, default=options.default, save=options.save_strategy, strategy=options.update_strategy, unconstrained=options.unconstrained, packages=options.packages, )
def test_update_ignore_constraints(project, repository): actions.do_add(project, packages=("pytz", )) assert project.meta.dependencies == ["pytz~=2019.3"] repository.add_candidate("pytz", "2020.2") actions.do_update(project, unconstrained=False, packages=("pytz", )) assert project.meta.dependencies == ["pytz~=2019.3"] assert project.get_locked_candidates()["pytz"].version == "2019.3" actions.do_update(project, unconstrained=True, packages=("pytz", )) assert project.meta.dependencies == ["pytz~=2020.2"] assert project.get_locked_candidates()["pytz"].version == "2020.2"
def handle(self, project: Project, options: argparse.Namespace) -> None: actions.do_update( project, dev=options.dev, sections=options.sections, default=options.default, save=options.save_strategy or project.config["strategy.save"], strategy=options.update_strategy or project.config["strategy.update"], unconstrained=options.unconstrained, top=options.top, dry_run=options.dry_run, packages=options.packages, )
def test_update_ignore_constraints(project, repository, working_set): actions.do_add(project, packages=("pytz", )) assert project.tool_settings["dependencies"][ "pytz"] == "<2020.0.0,>=2019.3" repository.add_candidate("pytz", "2020.2") actions.do_update(project, unconstrained=False, packages=("pytz", )) assert project.tool_settings["dependencies"][ "pytz"] == "<2020.0.0,>=2019.3" assert project.get_locked_candidates()["pytz"].version == "2019.3" actions.do_update(project, unconstrained=True, packages=("pytz", )) assert project.tool_settings["dependencies"][ "pytz"] == "<2021.0.0,>=2020.2" assert project.get_locked_candidates()["pytz"].version == "2020.2"
def test_update_existing_package_with_prerelease(project, working_set): actions.do_add(project, packages=["urllib3"]) assert project.meta.dependencies[0] == "urllib3~=1.22" assert working_set["urllib3"].version == "1.22" actions.do_update(project, packages=["urllib3"], prerelease=True) assert project.meta.dependencies[0] == "urllib3~=1.22" assert working_set["urllib3"].version == "1.23b0" actions.do_update(project, packages=["urllib3"], prerelease=True, unconstrained=True) assert project.meta.dependencies[0] == "urllib3<2,>=1.23b0" assert working_set["urllib3"].version == "1.23b0"
def handle(self, project: Project, options: argparse.Namespace) -> None: actions.do_update( project, dev=options.dev, groups=options.groups, default=options.default, save=options.save_strategy or project.config["strategy.save"], strategy=options.update_strategy or project.config["strategy.update"], unconstrained=options.unconstrained, top=options.top, dry_run=options.dry_run, packages=options.packages, sync=options.sync, no_editable=options.no_editable, no_self=options.no_self, prerelease=options.prerelease, )
def test_update_specified_packages(project, repository): actions.do_add(project, sync=False, packages=["requests", "pytz"]) repository.add_candidate("pytz", "2019.6") repository.add_candidate("chardet", "3.0.5") repository.add_candidate("requests", "2.20.0") repository.add_dependencies( "requests", "2.20.0", [ "certifi>=2017.4.17", "chardet<3.1.0,>=3.0.2", "idna<2.8,>=2.5", "urllib3<1.24,>=1.21.1", ], ) actions.do_update(project, packages=["requests"]) locked_candidates = project.get_locked_candidates() assert locked_candidates["requests"].version == "2.20.0" assert locked_candidates["chardet"].version == "3.0.4"
def test_update_top_packages_dry_run(project, repository, capsys): actions.do_add(project, packages=["requests", "pytz"]) repository.add_candidate("pytz", "2019.6") repository.add_candidate("chardet", "3.0.5") repository.add_candidate("requests", "2.20.0") repository.add_dependencies( "requests", "2.20.0", [ "certifi>=2017.4.17", "chardet<3.1.0,>=3.0.2", "idna<2.8,>=2.5", "urllib3<1.24,>=1.21.1", ], ) actions.do_update(project, top=True, dry_run=True) out, _ = capsys.readouterr() assert "requests 2.19.1 -> 2.20.0" in out assert "- chardet 3.0.4 -> 3.0.5" not in out
def test_update_dry_run(project, repository, capsys): actions.do_add(project, packages=["requests", "pytz"]) repository.add_candidate("pytz", "2019.6") repository.add_candidate("chardet", "3.0.5") repository.add_candidate("requests", "2.20.0") repository.add_dependencies( "requests", "2.20.0", [ "certifi>=2017.4.17", "chardet<3.1.0,>=3.0.2", "idna<2.8,>=2.5", "urllib3<1.24,>=1.21.1", ], ) actions.do_update(project, dry_run=True) project.lockfile = None locked_candidates = project.locked_repository.all_candidates assert locked_candidates["requests"].version == "2.19.1" assert locked_candidates["chardet"].version == "3.0.4" assert locked_candidates["pytz"].version == "2019.3" out, _ = capsys.readouterr() assert "requests 2.19.1 -> 2.20.0" in out
def test_update_unconstrained_without_packages(project): actions.do_add(project, packages=("requests", )) with pytest.raises(PdmUsageError): actions.do_update(project, unconstrained=True)
def update(project, dev, sections, default, strategy, save, unconstrained, packages): actions.do_update(project, dev, sections, default, strategy, save, unconstrained, packages)
def test_update_packages_with_top(project): actions.do_add(project, packages=("requests", )) with pytest.raises(PdmUsageError): actions.do_update(project, packages=("requests", ), top=True)
def test_update_unconstrained_without_packages(project, repository, working_set): actions.do_add(project, packages=("requests", )) with pytest.raises(click.BadArgumentUsage): actions.do_update(project, unconstrained=True)
def test_update_with_prerelease_without_package_argument(project): actions.do_add(project, packages=["requests"]) with pytest.raises(PdmUsageError, match="--prerelease must be used with packages given"): actions.do_update(project, prerelease=True)