Pass lock options to outdated

This commit is contained in:
Frost Ming
2019-08-03 10:43:24 +08:00
parent f4b66a77eb
commit 7708cd8445
5 changed files with 27 additions and 5 deletions
+1
View File
@@ -0,0 +1 @@
Pass ``--pre`` and ``--clear`` options to ``pipenv update --outdated``.
+1 -1
View File
@@ -484,7 +484,7 @@ def update(
if not outdated:
outdated = bool(dry_run)
if outdated:
do_outdated(pypi_mirror=state.pypi_mirror)
do_outdated(clear=state.clear, pre=state.installstate.pre, pypi_mirror=state.pypi_mirror)
packages = [p for p in state.installstate.packages if p]
editable = [p for p in state.installstate.editables if p]
if not packages:
+2 -3
View File
@@ -1767,12 +1767,11 @@ def do_py(system=False):
click.echo(crayons.red("No project found!"))
def do_outdated(pypi_mirror=None):
def do_outdated(pypi_mirror=None, pre=False, clear=False):
# TODO: Allow --skip-lock here?
from .vendor.requirementslib.models.requirements import Requirement
from .vendor.requirementslib.models.utils import get_version
from .vendor.packaging.utils import canonicalize_name
from .vendor.vistir.compat import Mapping
from collections import namedtuple
packages = {}
@@ -1789,7 +1788,7 @@ def do_outdated(pypi_mirror=None):
dep = Requirement.from_line(str(result.as_requirement()))
packages.update(dep.as_pipfile())
updated_packages = {}
lockfile = do_lock(write=False, pypi_mirror=pypi_mirror)
lockfile = do_lock(clear=clear, pre=pre, write=False, pypi_mirror=pypi_mirror)
for section in ("develop", "default"):
for package in lockfile[section]:
try:
+13
View File
@@ -265,3 +265,16 @@ def test_pipenv_three(PipenvInstance):
c = p.pipenv('--three')
assert c.return_code == 0
assert 'Successfully created virtual environment' in c.err
@pytest.mark.outdated
def test_pipenv_outdated_prerelease(PipenvInstance):
with PipenvInstance(chdir=True) as p:
with open(p.pipfile_path, "w") as f:
contents = """
[packages]
sqlalchemy = "==1.2.0b3"
""".strip()
f.write(contents)
c = p.pipenv('update --pre --outdated')
assert c.return_code == 0
+10 -1
View File
@@ -7,7 +7,6 @@ import pytest
from flaky import flaky
from pipenv._compat import Path, TemporaryDirectory
from pipenv.project import Project
from pipenv.utils import temp_environ
from pipenv.vendor import delegator
@@ -475,3 +474,13 @@ extras = ["socks"]
assert 'six = {version = "*"}' in contents
assert 'requests = {version = "*"' in contents
assert 'plette = "*"' in contents
@pytest.mark.install
def test_install_prerelease(PipenvInstance):
with PipenvInstance(chdir=True) as p:
c = p.pipenv("install sqlalchemy==1.2.0b3")
assert c.return_code != 0
c = p.pipenv("install --pre sqlalchemy==1.2.0b3")
assert c.return_code == 0
assert p.lockfile["default"]["sqlalchemy"]["version"] == "1.2.0b3"