Exemplo n.º 1
0
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",))
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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", ))
Exemplo n.º 5
0
 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,
     )
Exemplo n.º 6
0
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"
Exemplo n.º 7
0
 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,
     )
Exemplo n.º 8
0
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"
Exemplo n.º 9
0
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"
Exemplo n.º 10
0
 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,
     )
Exemplo n.º 11
0
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"
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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
Exemplo n.º 14
0
def test_update_unconstrained_without_packages(project):
    actions.do_add(project, packages=("requests", ))
    with pytest.raises(PdmUsageError):
        actions.do_update(project, unconstrained=True)
Exemplo n.º 15
0
def update(project, dev, sections, default, strategy, save, unconstrained,
           packages):
    actions.do_update(project, dev, sections, default, strategy, save,
                      unconstrained, packages)
Exemplo n.º 16
0
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)
Exemplo n.º 17
0
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)
Exemplo n.º 18
0
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)