Merge pull request #3070 from jxltom/fixed-unnecessary-extras-are-added-in-lockfiles

Fixed unnecessary extras are added in lockfiles
This commit is contained in:
Dan Ryan
2018-10-21 02:47:40 -04:00
committed by GitHub
3 changed files with 26 additions and 1 deletions
+1
View File
@@ -0,0 +1 @@
Fixed unnecessary extras are added when translating markers
+3 -1
View File
@@ -1182,7 +1182,9 @@ def translate_markers(pipfile_entry):
new_pipfile = dict(pipfile_entry).copy()
marker_set = set()
if "markers" in new_pipfile:
marker_set.add(str(Marker(new_pipfile.get("markers"))))
marker = str(Marker(new_pipfile.pop("markers")))
if 'extra' not in marker:
marker_set.add(marker)
for m in pipfile_markers:
entry = "{0}".format(pipfile_entry[m])
if m != "markers":
+22
View File
@@ -167,6 +167,28 @@ maya = "*"
assert c.return_code == 0
@pytest.mark.extras
@pytest.mark.lock
def test_lock_extras_without_install(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
with open(p.pipfile_path, 'w') as f:
contents = """
[packages]
requests = {version = "*", extras = ["socks"]}
""".strip()
f.write(contents)
c = p.pipenv('lock')
assert c.return_code == 0
assert "requests" in p.lockfile["default"]
assert "pysocks" in p.lockfile["default"]
assert "markers" not in p.lockfile["default"]['pysocks']
c = p.pipenv('lock -r')
assert c.return_code == 0
assert "extra == 'socks'" not in c.out.strip()
@pytest.mark.extras
@pytest.mark.lock
@pytest.mark.complex