diff --git a/news/5226.trivial.rst b/news/5226.trivial.rst new file mode 100644 index 0000000000..8937f4dcfa --- /dev/null +++ b/news/5226.trivial.rst @@ -0,0 +1 @@ +Modernize the test ``test_convert_deps_to_pip`` to not use ``pip-shims`` and the code it calls to not use ``vistir``. diff --git a/pipenv/utils/dependencies.py b/pipenv/utils/dependencies.py index a1f70cbc3c..b4ca1a7028 100644 --- a/pipenv/utils/dependencies.py +++ b/pipenv/utils/dependencies.py @@ -1,5 +1,6 @@ import os from contextlib import contextmanager +from tempfile import NamedTemporaryFile from typing import Mapping, Sequence from pipenv.patched.pip._vendor.packaging.markers import Marker @@ -273,9 +274,7 @@ def convert_deps_to_pip( return dependencies # Write requirements.txt to tmp directory. - from pipenv.vendor.vistir.path import create_tracked_tempfile - - f = create_tracked_tempfile(suffix="-requirements.txt", delete=False) + f = NamedTemporaryFile(suffix="-requirements.txt", delete=False) f.write("\n".join(dependencies).encode("utf-8")) f.close() return f.name diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index bc7eda9c48..04df666357 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -1,4 +1,5 @@ import os +from unittest import mock import pytest @@ -83,13 +84,11 @@ def mock_unpack(link, source_dir, download_dir, only_download=False, session=Non @pytest.mark.utils @pytest.mark.parametrize("deps, expected", DEP_PIP_PAIRS) @pytest.mark.needs_internet -def test_convert_deps_to_pip(monkeypatch, deps, expected): - with monkeypatch.context() as m: - from pipenv.vendor import pip_shims - m.setattr(pip_shims.shims, "unpack_url", mock_unpack) - if expected.startswith("Django"): - expected = expected.lower() - assert dependencies.convert_deps_to_pip(deps, r=False) == [expected] +@mock.patch("pipenv.patched.pip._internal.operations.prepare.unpack_url", mock_unpack) +def test_convert_deps_to_pip(deps, expected): + if expected.startswith("Django"): + expected = expected.lower() + assert dependencies.convert_deps_to_pip(deps, r=False) == [expected] @pytest.mark.utils @@ -134,14 +133,6 @@ def test_convert_deps_to_pip_one_way(deps, expected): assert dependencies.convert_deps_to_pip(deps, r=False) == [expected.lower()] -@pytest.mark.skipif(isinstance("", str), reason="don't need to test if unicode is str") -@pytest.mark.utils -def test_convert_deps_to_pip_unicode(): - deps = {"django": "==1.10"} - deps = dependencies.convert_deps_to_pip(deps, r=False) - assert deps[0] == "django==1.10" - - @pytest.mark.parametrize("line,result", [ ("-i https://example.com/simple/", ("https://example.com/simple/", None, None, [])), ("--extra-index-url=https://example.com/simple/", (None, "https://example.com/simple/", None, [])),