resolver take the missing dev argument

This commit is contained in:
Frost Ming
2020-11-10 17:26:56 +08:00
parent e4bce0018e
commit 7fe01318f1
3 changed files with 20 additions and 6 deletions
+1
View File
@@ -0,0 +1 @@
Fix a bug that the resolver takes wrong section to validate constraints.
+7 -6
View File
@@ -670,7 +670,7 @@ def parse_packages(packages, pre, clear, system, requirements_dir=None):
print(json.dumps([]))
def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages):
def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev):
from pipenv.utils import create_mirror_source, resolve_deps, replace_pypi_sources
pypi_mirror_source = (
create_mirror_source(os.environ["PIPENV_PYPI_MIRROR"])
@@ -709,9 +709,9 @@ def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packa
requirements_dir=requirements_dir,
)
if keep_outdated:
results = clean_outdated(results, resolver, project)
results = clean_outdated(results, resolver, project, dev)
else:
results = clean_results(results, resolver, project)
results = clean_results(results, resolver, project, dev)
if write:
with open(write, "w") as fh:
if not results:
@@ -726,7 +726,7 @@ def resolve_packages(pre, clear, verbose, system, write, requirements_dir, packa
print(json.dumps([]))
def _main(pre, clear, verbose, system, write, requirements_dir, packages, parse_only=False):
def _main(pre, clear, verbose, system, write, requirements_dir, packages, parse_only=False, dev=False):
os.environ["PIPENV_REQUESTED_PYTHON_VERSION"] = ".".join([str(s) for s in sys.version_info[:3]])
os.environ["PIP_PYTHON_PATH"] = str(sys.executable)
if parse_only:
@@ -738,7 +738,7 @@ def _main(pre, clear, verbose, system, write, requirements_dir, packages, parse_
requirements_dir=requirements_dir,
)
else:
resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages)
resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)
def main():
@@ -756,7 +756,8 @@ def main():
os.environ["PYTHONUNBUFFERED"] = str("1")
parsed = handle_parsed_args(parsed)
_main(parsed.pre, parsed.clear, parsed.verbose, parsed.system, parsed.write,
parsed.requirements_dir, parsed.packages, parse_only=parsed.parse_only)
parsed.requirements_dir, parsed.packages, parse_only=parsed.parse_only,
dev=parsed.dev)
if __name__ == "__main__":
+12
View File
@@ -775,3 +775,15 @@ def test_lock_package_with_wildcard_version(PipenvInstance):
assert "six" in p.lockfile["default"]
assert "version" in p.lockfile["default"]["six"]
assert p.lockfile["default"]["six"]["version"] == "==1.11.0"
@pytest.mark.lock
@pytest.mark.install
def test_default_lock_overwrite_dev_lock(PipenvInstance):
with PipenvInstance(chdir=True) as p:
c = p.pipenv("install 'click==6.7'")
assert c.ok
c = p.pipenv("install -d flask")
assert c.ok
assert p.lockfile["default"]["click"]["version"] == "==6.7"
assert p.lockfile["develop"]["click"]["version"] == "==6.7"