Skip to content

Commit

Permalink
Fix the assumption that all sources are named. (#5004)
Browse files Browse the repository at this point in the history
* Fix the assumption that all sources are named.

* Add test case

* Add news fragment
  • Loading branch information
matteius committed Mar 23, 2022
1 parent 004316c commit b60fa7f
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
2 changes: 2 additions & 0 deletions news/5002.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fixes issue with new index safety restriction, whereby an unnamed extra sources index
caused and error to be thrown during install.
2 changes: 1 addition & 1 deletion pipenv/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1403,7 +1403,7 @@ def pip_install(
if index and not extra_indexes:
extra_indexes = []
if requirement.index:
extra_indexes = list(filter(lambda d: d['name'] == requirement.index, project.sources))
extra_indexes = list(filter(lambda d: d.get('name') == requirement.index, project.sources))
if not extra_indexes:
extra_indexes = list(project.sources)
if requirement and requirement.vcs or requirement.editable:
Expand Down
27 changes: 27 additions & 0 deletions tests/integration/test_install_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,3 +497,30 @@ def test_rewrite_outline_table(PipenvInstance):
assert 'six = {version = "*"}' in contents
assert 'requests = {version = "*"' in contents
assert 'flask = "*"' in contents


@flaky
@pytest.mark.dev
@pytest.mark.basic
@pytest.mark.install
@pytest.mark.needs_internet
def test_install_with_unnamed_source(PipenvInstance):
"""Ensure that running `pipenv install` doesn't break with an unamed index"""
with PipenvInstance(chdir=True) as p:
with open(p.pipfile_path, "w") as f:
contents = """
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
[packages]
requests = {version="*", index="pypi"}
""".strip()
f.write(contents)
c = p.pipenv("install")
assert c.returncode == 0

0 comments on commit b60fa7f

Please sign in to comment.