From 74430df2f35cbf639cc92f9c299f7f59145a212d Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Sat, 23 Jun 2018 01:43:12 -0400 Subject: [PATCH] Add tests to cover #2260 Signed-off-by: Dan Ryan --- tests/integration/test_install_twists.py | 22 ++++++++++++++++++ .../six-1.11.0+mkl-py2.py3-none-any.whl | Bin 0 -> 10702 bytes 2 files changed, 22 insertions(+) create mode 100644 tests/test_artifacts/six-1.11.0+mkl-py2.py3-none-any.whl diff --git a/tests/integration/test_install_twists.py b/tests/integration/test_install_twists.py index e12b2ab6..91cdf329 100644 --- a/tests/integration/test_install_twists.py +++ b/tests/integration/test_install_twists.py @@ -230,3 +230,25 @@ def test_install_local_file_collision(PipenvInstance, pypi): assert target_package in p.pipfile['packages'] assert p.pipfile['packages'][target_package] == '*' assert target_package in p.lockfile['default'] + + +@pytest.mark.url +@pytest.mark.install +def test_install_local_uri_special_character(PipenvInstance, testsroot): + file_name = 'six-1.11.0+mkl-py2.py3-none-any.whl' + source_path = os.path.abspath(os.path.join(testsroot, 'test_artifacts', file_name)) + with PipenvInstance() as p: + artifact_dir = 'artifacts' + artifact_path = os.path.join(p.path, artifact_dir) + mkdir_p(artifact_path) + shutil.copy(source_path, os.path.join(artifact_path, file_name)) + with open(p.pipfile_path, 'w') as f: + contents = """ +# Pre comment +[packages] +six = {{path = "./artifacts/{}"}} + """.format(file_name) + f.write(contents.strip()) + c = p.pipenv('install') + assert c.return_code == 0 + assert 'six' in p.lockfile['default'] diff --git a/tests/test_artifacts/six-1.11.0+mkl-py2.py3-none-any.whl b/tests/test_artifacts/six-1.11.0+mkl-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..599602396f904e27512eca2a8b50842f65bbddb8 GIT binary patch literal 10702 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