mirror of https://github.com/pypa/pip
Merge pull request #6562 from cjerdonek/make-test-package-finder
Add make_test_finder() helper function
This commit is contained in:
commit
efaabe3bdd
|
@ -1,10 +1,8 @@
|
|||
from pip._vendor import pytoml
|
||||
|
||||
from pip._internal.build_env import BuildEnvironment
|
||||
from pip._internal.download import PipSession
|
||||
from pip._internal.index import PackageFinder
|
||||
from pip._internal.req import InstallRequirement
|
||||
from tests.lib import path_to_url
|
||||
from tests.lib import make_test_finder, path_to_url
|
||||
|
||||
|
||||
def make_project(tmpdir, requires=[], backend=None):
|
||||
|
@ -23,7 +21,7 @@ def test_backend(tmpdir, data):
|
|||
req = InstallRequirement(None, None, source_dir=project_dir)
|
||||
req.load_pyproject_toml()
|
||||
env = BuildEnvironment()
|
||||
finder = PackageFinder.create([data.backends], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.backends])
|
||||
env.install_requirements(finder, ["dummy_backend"], 'normal', "Installing")
|
||||
conflicting, missing = env.check_requirements(["dummy_backend"])
|
||||
assert not conflicting and not missing
|
||||
|
|
|
@ -14,8 +14,16 @@ import pytest
|
|||
from scripttest import FoundDir, TestFileEnvironment
|
||||
|
||||
from pip._internal.utils.deprecation import DEPRECATION_MSG_PREFIX
|
||||
from pip._internal.download import PipSession
|
||||
from pip._internal.index import PackageFinder
|
||||
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
|
||||
from tests.lib.path import Path, curdir
|
||||
|
||||
if MYPY_CHECK_RUNNING:
|
||||
from typing import Iterable, List, Optional
|
||||
from pip._internal.models.target_python import TargetPython
|
||||
|
||||
|
||||
DATA_DIR = Path(__file__).folder.folder.join("data").abspath
|
||||
SRC_DIR = Path(__file__).abspath.folder.folder.folder
|
||||
|
||||
|
@ -69,6 +77,35 @@ def create_file(path, contents=None):
|
|||
f.write("\n")
|
||||
|
||||
|
||||
def make_test_finder(
|
||||
find_links=None, # type: Optional[List[str]]
|
||||
index_urls=None, # type: Optional[List[str]]
|
||||
allow_all_prereleases=False, # type: bool
|
||||
trusted_hosts=None, # type: Optional[Iterable[str]]
|
||||
session=None, # type: Optional[PipSession]
|
||||
target_python=None, # type: Optional[TargetPython]
|
||||
):
|
||||
# type: (...) -> PackageFinder
|
||||
"""
|
||||
Create a PackageFinder for testing purposes.
|
||||
"""
|
||||
if find_links is None:
|
||||
find_links = []
|
||||
if index_urls is None:
|
||||
index_urls = []
|
||||
if session is None:
|
||||
session = PipSession()
|
||||
|
||||
return PackageFinder.create(
|
||||
find_links,
|
||||
index_urls,
|
||||
allow_all_prereleases=allow_all_prereleases,
|
||||
trusted_hosts=trusted_hosts,
|
||||
session=session,
|
||||
target_python=target_python,
|
||||
)
|
||||
|
||||
|
||||
class TestData(object):
|
||||
"""
|
||||
Represents a bundle of pre-created test data.
|
||||
|
|
|
@ -3,9 +3,7 @@ from textwrap import dedent
|
|||
import pytest
|
||||
|
||||
from pip._internal.build_env import BuildEnvironment
|
||||
from pip._internal.download import PipSession
|
||||
from pip._internal.index import PackageFinder
|
||||
from tests.lib import create_basic_wheel_for_package
|
||||
from tests.lib import create_basic_wheel_for_package, make_test_finder
|
||||
|
||||
|
||||
def indent(text, prefix):
|
||||
|
@ -59,9 +57,7 @@ def test_build_env_allow_empty_requirements_install():
|
|||
def test_build_env_allow_only_one_install(script):
|
||||
create_basic_wheel_for_package(script, 'foo', '1.0')
|
||||
create_basic_wheel_for_package(script, 'bar', '1.0')
|
||||
finder = PackageFinder.create(
|
||||
[script.scratch_path], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[script.scratch_path])
|
||||
build_env = BuildEnvironment()
|
||||
for prefix in ('normal', 'overlay'):
|
||||
build_env.install_requirements(finder, ['foo'], prefix,
|
||||
|
|
|
@ -7,20 +7,20 @@ from pkg_resources import Distribution, parse_version
|
|||
|
||||
import pip._internal.pep425tags
|
||||
import pip._internal.wheel
|
||||
from pip._internal.download import PipSession
|
||||
from pip._internal.exceptions import (
|
||||
BestVersionAlreadyInstalled, DistributionNotFound,
|
||||
)
|
||||
from pip._internal.index import (
|
||||
CandidateEvaluator, InstallationCandidate, Link, PackageFinder, Search,
|
||||
CandidateEvaluator, InstallationCandidate, Link, Search,
|
||||
)
|
||||
from pip._internal.models.target_python import TargetPython
|
||||
from pip._internal.req.constructors import install_req_from_line
|
||||
from tests.lib import make_test_finder
|
||||
|
||||
|
||||
def test_no_mpkg(data):
|
||||
"""Finder skips zipfiles with "macosx10" in the name."""
|
||||
finder = PackageFinder.create([data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
req = install_req_from_line("pkgwithmpkg")
|
||||
found = finder.find_requirement(req, False)
|
||||
|
||||
|
@ -29,7 +29,7 @@ def test_no_mpkg(data):
|
|||
|
||||
def test_no_partial_name_match(data):
|
||||
"""Finder requires the full project name to match, not just beginning."""
|
||||
finder = PackageFinder.create([data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
req = install_req_from_line("gmpy")
|
||||
found = finder.find_requirement(req, False)
|
||||
|
||||
|
@ -38,9 +38,8 @@ def test_no_partial_name_match(data):
|
|||
|
||||
def test_tilde():
|
||||
"""Finder can accept a path with ~ in it and will normalize it."""
|
||||
session = PipSession()
|
||||
with patch('pip._internal.index.os.path.exists', return_value=True):
|
||||
finder = PackageFinder.create(['~/python-pkgs'], [], session=session)
|
||||
finder = make_test_finder(find_links=['~/python-pkgs'])
|
||||
req = install_req_from_line("gmpy")
|
||||
with pytest.raises(DistributionNotFound):
|
||||
finder.find_requirement(req, False)
|
||||
|
@ -49,11 +48,7 @@ def test_tilde():
|
|||
def test_duplicates_sort_ok(data):
|
||||
"""Finder successfully finds one of a set of duplicates in different
|
||||
locations"""
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links, data.find_links2],
|
||||
[],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links, data.find_links2])
|
||||
req = install_req_from_line("duplicate")
|
||||
found = finder.find_requirement(req, False)
|
||||
|
||||
|
@ -63,7 +58,7 @@ def test_duplicates_sort_ok(data):
|
|||
def test_finder_detects_latest_find_links(data):
|
||||
"""Test PackageFinder detects latest using find-links"""
|
||||
req = install_req_from_line('simple', None)
|
||||
finder = PackageFinder.create([data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url.endswith("simple-3.0.tar.gz")
|
||||
|
||||
|
@ -71,7 +66,7 @@ def test_finder_detects_latest_find_links(data):
|
|||
def test_incorrect_case_file_index(data):
|
||||
"""Test PackageFinder detects latest using wrong case"""
|
||||
req = install_req_from_line('dinner', None)
|
||||
finder = PackageFinder.create([], [data.find_links3], session=PipSession())
|
||||
finder = make_test_finder(index_urls=[data.find_links3])
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url.endswith("Dinner-2.0.tar.gz")
|
||||
|
||||
|
@ -88,7 +83,7 @@ def test_finder_detects_latest_already_satisfied_find_links(data):
|
|||
version=latest_version
|
||||
)
|
||||
req.satisfied_by = satisfied_by
|
||||
finder = PackageFinder.create([data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
|
||||
with pytest.raises(BestVersionAlreadyInstalled):
|
||||
finder.find_requirement(req, True)
|
||||
|
@ -106,11 +101,7 @@ def test_finder_detects_latest_already_satisfied_pypi_links():
|
|||
version=latest_version,
|
||||
)
|
||||
req.satisfied_by = satisfied_by
|
||||
finder = PackageFinder.create(
|
||||
[],
|
||||
["http://pypi.org/simple/"],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(index_urls=["http://pypi.org/simple/"])
|
||||
|
||||
with pytest.raises(BestVersionAlreadyInstalled):
|
||||
finder.find_requirement(req, True)
|
||||
|
@ -126,11 +117,7 @@ class TestWheel:
|
|||
|
||||
req = install_req_from_line("invalid")
|
||||
# data.find_links contains "invalid.whl", which is an invalid wheel
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
[],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
with pytest.raises(DistributionNotFound):
|
||||
finder.find_requirement(req, True)
|
||||
|
||||
|
@ -144,10 +131,8 @@ class TestWheel:
|
|||
target_python = TargetPython()
|
||||
# Make sure no tags will match.
|
||||
target_python._valid_tags = []
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
[],
|
||||
session=PipSession(),
|
||||
finder = make_test_finder(
|
||||
find_links=[data.find_links],
|
||||
target_python=target_python,
|
||||
)
|
||||
|
||||
|
@ -165,11 +150,7 @@ class TestWheel:
|
|||
)
|
||||
|
||||
req = install_req_from_line("simple.dist")
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
[],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
found = finder.find_requirement(req, True)
|
||||
assert (
|
||||
found.url.endswith("simple.dist-0.1-py2.py3-none-any.whl")
|
||||
|
@ -181,11 +162,7 @@ class TestWheel:
|
|||
`test_link_sorting` also covers this at lower level
|
||||
"""
|
||||
req = install_req_from_line("priority")
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
[],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
found = finder.find_requirement(req, True)
|
||||
assert found.url.endswith("priority-1.0-py2.py3-none-any.whl"), found
|
||||
|
||||
|
@ -202,11 +179,7 @@ class TestWheel:
|
|||
version=latest_version,
|
||||
)
|
||||
req.satisfied_by = satisfied_by
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
[],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
|
||||
with pytest.raises(BestVersionAlreadyInstalled):
|
||||
finder.find_requirement(req, True)
|
||||
|
@ -271,7 +244,7 @@ class TestWheel:
|
|||
Link("simplewheel-1.0-py2.py3-none-any.whl"),
|
||||
),
|
||||
]
|
||||
finder = PackageFinder.create([], [], session=PipSession())
|
||||
finder = make_test_finder()
|
||||
sort_key = finder.candidate_evaluator._sort_key
|
||||
results = sorted(links, key=sort_key, reverse=True)
|
||||
results2 = sorted(reversed(links), key=sort_key, reverse=True)
|
||||
|
@ -281,10 +254,9 @@ class TestWheel:
|
|||
def test_finder_priority_file_over_page(data):
|
||||
"""Test PackageFinder prefers file links over equivalent page links"""
|
||||
req = install_req_from_line('gmpy==1.15', None)
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links],
|
||||
["http://pypi.org/simple/"],
|
||||
session=PipSession(),
|
||||
finder = make_test_finder(
|
||||
find_links=[data.find_links],
|
||||
index_urls=["http://pypi.org/simple/"],
|
||||
)
|
||||
all_versions = finder.find_all_candidates(req.name)
|
||||
# 1 file InstallationCandidate followed by all https ones
|
||||
|
@ -301,7 +273,7 @@ def test_finder_priority_nonegg_over_eggfragments():
|
|||
req = install_req_from_line('bar==1.0', None)
|
||||
links = ['http://foo/bar.py#egg=bar-1.0', 'http://foo/bar-1.0.tar.gz']
|
||||
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
all_versions = finder.find_all_candidates(req.name)
|
||||
|
@ -313,7 +285,7 @@ def test_finder_priority_nonegg_over_eggfragments():
|
|||
assert link.url.endswith('tar.gz')
|
||||
|
||||
links.reverse()
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
all_versions = finder.find_all_candidates(req.name)
|
||||
|
@ -332,22 +304,20 @@ def test_finder_only_installs_stable_releases(data):
|
|||
req = install_req_from_line("bar", None)
|
||||
|
||||
# using a local index (that has pre & dev releases)
|
||||
finder = PackageFinder.create(
|
||||
[], [data.index_url("pre")], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(index_urls=[data.index_url("pre")])
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url.endswith("bar-1.0.tar.gz"), link.url
|
||||
|
||||
# using find-links
|
||||
links = ["https://foo/bar-1.0.tar.gz", "https://foo/bar-2.0b1.tar.gz"]
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url == "https://foo/bar-1.0.tar.gz"
|
||||
|
||||
links.reverse()
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
|
@ -366,9 +336,7 @@ def test_finder_only_installs_data_require(data):
|
|||
"""
|
||||
|
||||
# using a local index (that has pre & dev releases)
|
||||
finder = PackageFinder.create(
|
||||
[], [data.index_url("datarequire")], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(index_urls=[data.index_url("datarequire")])
|
||||
links = finder.find_all_candidates("fakepackage")
|
||||
|
||||
expected = ['1.0.0', '9.9.9']
|
||||
|
@ -388,32 +356,23 @@ def test_finder_installs_pre_releases(data):
|
|||
req = install_req_from_line("bar", None)
|
||||
|
||||
# using a local index (that has pre & dev releases)
|
||||
finder = PackageFinder.create(
|
||||
[], [data.index_url("pre")],
|
||||
finder = make_test_finder(
|
||||
index_urls=[data.index_url("pre")],
|
||||
allow_all_prereleases=True,
|
||||
session=PipSession(),
|
||||
)
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url.endswith("bar-2.0b1.tar.gz"), link.url
|
||||
|
||||
# using find-links
|
||||
links = ["https://foo/bar-1.0.tar.gz", "https://foo/bar-2.0b1.tar.gz"]
|
||||
finder = PackageFinder.create(
|
||||
links, [],
|
||||
allow_all_prereleases=True,
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=links, allow_all_prereleases=True)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url == "https://foo/bar-2.0b1.tar.gz"
|
||||
|
||||
links.reverse()
|
||||
finder = PackageFinder.create(
|
||||
links, [],
|
||||
allow_all_prereleases=True,
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=links, allow_all_prereleases=True)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
|
@ -428,10 +387,9 @@ def test_finder_installs_dev_releases(data):
|
|||
req = install_req_from_line("bar", None)
|
||||
|
||||
# using a local index (that has dev releases)
|
||||
finder = PackageFinder.create(
|
||||
[], [data.index_url("dev")],
|
||||
finder = make_test_finder(
|
||||
index_urls=[data.index_url("dev")],
|
||||
allow_all_prereleases=True,
|
||||
session=PipSession(),
|
||||
)
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url.endswith("bar-2.0.dev1.tar.gz"), link.url
|
||||
|
@ -444,14 +402,14 @@ def test_finder_installs_pre_releases_with_version_spec():
|
|||
req = install_req_from_line("bar>=0.0.dev0", None)
|
||||
links = ["https://foo/bar-1.0.tar.gz", "https://foo/bar-2.0b1.tar.gz"]
|
||||
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
assert link.url == "https://foo/bar-2.0b1.tar.gz"
|
||||
|
||||
links.reverse()
|
||||
finder = PackageFinder.create(links, [], session=PipSession())
|
||||
finder = make_test_finder(find_links=links)
|
||||
|
||||
with patch.object(finder, "_get_pages", lambda x, y: []):
|
||||
link = finder.find_requirement(req, False)
|
||||
|
@ -507,8 +465,7 @@ class TestCandidateEvaluator(object):
|
|||
|
||||
def test_get_index_urls_locations():
|
||||
"""Check that the canonical name is on all indexes"""
|
||||
finder = PackageFinder.create(
|
||||
[], ['file://index1/', 'file://index2'], session=PipSession())
|
||||
finder = make_test_finder(index_urls=['file://index1/', 'file://index2'])
|
||||
locations = finder._get_index_urls_locations(
|
||||
install_req_from_line('Complex_Name').name)
|
||||
assert locations == ['file://index1/complex-name/',
|
||||
|
@ -517,27 +474,27 @@ def test_get_index_urls_locations():
|
|||
|
||||
def test_find_all_candidates_nothing():
|
||||
"""Find nothing without anything"""
|
||||
finder = PackageFinder.create([], [], session=PipSession())
|
||||
finder = make_test_finder()
|
||||
assert not finder.find_all_candidates('pip')
|
||||
|
||||
|
||||
def test_find_all_candidates_find_links(data):
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
versions = finder.find_all_candidates('simple')
|
||||
assert [str(v.version) for v in versions] == ['3.0', '2.0', '1.0']
|
||||
|
||||
|
||||
def test_find_all_candidates_index(data):
|
||||
finder = PackageFinder.create(
|
||||
[], [data.index_url('simple')], session=PipSession())
|
||||
finder = make_test_finder(index_urls=[data.index_url('simple')])
|
||||
versions = finder.find_all_candidates('simple')
|
||||
assert [str(v.version) for v in versions] == ['1.0']
|
||||
|
||||
|
||||
def test_find_all_candidates_find_links_and_index(data):
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [data.index_url('simple')], session=PipSession())
|
||||
finder = make_test_finder(
|
||||
find_links=[data.find_links],
|
||||
index_urls=[data.index_url('simple')],
|
||||
)
|
||||
versions = finder.find_all_candidates('simple')
|
||||
# first the find-links versions then the page versions
|
||||
assert [str(v.version) for v in versions] == ['3.0', '2.0', '1.0', '1.0']
|
||||
|
|
|
@ -12,7 +12,7 @@ from pip._internal.index import (
|
|||
_egg_info_matches, _find_name_version_sep, _get_html_page,
|
||||
)
|
||||
from pip._internal.models.target_python import TargetPython
|
||||
from tests.lib import CURRENT_PY_VERSION_INFO
|
||||
from tests.lib import CURRENT_PY_VERSION_INFO, make_test_finder
|
||||
|
||||
|
||||
@pytest.mark.parametrize('requires_python, expected', [
|
||||
|
@ -156,9 +156,8 @@ class TestPackageFinder:
|
|||
"""
|
||||
target_python = TargetPython(py_version_info=(3, 7, 3))
|
||||
finder = PackageFinder.create(
|
||||
[], [], target_python=target_python, session=object(),
|
||||
[], [], session=object(), target_python=target_python,
|
||||
)
|
||||
|
||||
evaluator = finder.candidate_evaluator
|
||||
actual_target_python = evaluator._target_python
|
||||
assert actual_target_python is target_python
|
||||
|
@ -169,7 +168,7 @@ def test_sort_locations_file_expand_dir(data):
|
|||
"""
|
||||
Test that a file:// dir gets listdir run with expand_dir
|
||||
"""
|
||||
finder = PackageFinder.create([data.find_links], [], session=PipSession())
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
files, urls = finder._sort_locations([data.find_links], expand_dir=True)
|
||||
assert files and not urls, (
|
||||
"files and not urls should have been found at find-links url: %s" %
|
||||
|
@ -182,7 +181,7 @@ def test_sort_locations_file_not_find_link(data):
|
|||
Test that a file:// url dir that's not a find-link, doesn't get a listdir
|
||||
run
|
||||
"""
|
||||
finder = PackageFinder.create([], [], session=PipSession())
|
||||
finder = make_test_finder()
|
||||
files, urls = finder._sort_locations([data.index_url("empty_with_pkg")])
|
||||
assert urls and not files, "urls, but not files should have been found"
|
||||
|
||||
|
@ -191,7 +190,7 @@ def test_sort_locations_non_existing_path():
|
|||
"""
|
||||
Test that a non-existing path is ignored.
|
||||
"""
|
||||
finder = PackageFinder.create([], [], session=PipSession())
|
||||
finder = make_test_finder()
|
||||
files, urls = finder._sort_locations(
|
||||
[os.path.join('this', 'doesnt', 'exist')])
|
||||
assert not urls and not files, "nothing should have been found"
|
||||
|
@ -297,7 +296,7 @@ class MockLogger(object):
|
|||
],
|
||||
)
|
||||
def test_secure_origin(location, trusted, expected):
|
||||
finder = PackageFinder.create([], [], session=[], trusted_hosts=trusted)
|
||||
finder = make_test_finder(trusted_hosts=trusted)
|
||||
logger = MockLogger()
|
||||
finder._validate_secure_origin(logger, location)
|
||||
assert logger.called == expected
|
||||
|
@ -315,7 +314,7 @@ def test_get_formatted_locations_basic_auth():
|
|||
find_links = [
|
||||
'https://links-user:links-pass@page.domain.com'
|
||||
]
|
||||
finder = PackageFinder.create(find_links, index_urls, session=[])
|
||||
finder = make_test_finder(find_links=find_links, index_urls=index_urls)
|
||||
|
||||
result = finder.get_formatted_locations()
|
||||
assert 'repo-user:****@repo.domain.com' in result
|
||||
|
|
|
@ -14,7 +14,6 @@ from pip._internal.download import PipSession
|
|||
from pip._internal.exceptions import (
|
||||
HashErrors, InstallationError, InvalidWheelFilename, PreviousBuildDirError,
|
||||
)
|
||||
from pip._internal.index import PackageFinder
|
||||
from pip._internal.legacy_resolve import Resolver
|
||||
from pip._internal.operations.prepare import RequirementPreparer
|
||||
from pip._internal.req import InstallRequirement, RequirementSet
|
||||
|
@ -24,7 +23,9 @@ from pip._internal.req.constructors import (
|
|||
from pip._internal.req.req_file import process_line
|
||||
from pip._internal.req.req_tracker import RequirementTracker
|
||||
from pip._internal.utils.misc import path_to_url
|
||||
from tests.lib import DATA_DIR, assert_raises_regexp, requirements_file
|
||||
from tests.lib import (
|
||||
DATA_DIR, assert_raises_regexp, make_test_finder, requirements_file,
|
||||
)
|
||||
|
||||
|
||||
def get_processed_req_from_line(line, fname='file', lineno=1):
|
||||
|
@ -72,9 +73,7 @@ class TestRequirementSet(object):
|
|||
req = install_req_from_line('simple')
|
||||
req.is_direct = True
|
||||
reqset.add_requirement(req)
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
assert_raises_regexp(
|
||||
PreviousBuildDirError,
|
||||
|
@ -96,9 +95,7 @@ class TestRequirementSet(object):
|
|||
)
|
||||
req.is_direct = True
|
||||
reqset.add_requirement(req)
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
resolver.resolve(reqset)
|
||||
# This is hacky but does test both case in py2 and py3
|
||||
|
@ -135,11 +132,7 @@ class TestRequirementSet(object):
|
|||
'packages/source/p/peep/peep-3.1.1.tar.gz',
|
||||
lineno=4,
|
||||
))
|
||||
finder = PackageFinder.create(
|
||||
[],
|
||||
['https://pypi.org/simple/'],
|
||||
session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(index_urls=['https://pypi.org/simple/'])
|
||||
resolver = self._basic_resolver(finder)
|
||||
assert_raises_regexp(
|
||||
HashErrors,
|
||||
|
@ -165,9 +158,7 @@ class TestRequirementSet(object):
|
|||
'simple==1.0', lineno=1
|
||||
))
|
||||
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
|
||||
assert_raises_regexp(
|
||||
|
@ -185,8 +176,8 @@ class TestRequirementSet(object):
|
|||
RequirementSet.
|
||||
"""
|
||||
req_set = RequirementSet(require_hashes=False)
|
||||
session = PipSession()
|
||||
finder = PackageFinder.create([data.find_links], [], session=session)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
session = finder.session
|
||||
command = InstallCommand()
|
||||
with requirements_file('--require-hashes', tmpdir) as reqs_file:
|
||||
options, args = command.parse_args(['-r', reqs_file])
|
||||
|
@ -214,9 +205,7 @@ class TestRequirementSet(object):
|
|||
'file://%s' % (dir_path,),
|
||||
lineno=2,
|
||||
))
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
sep = os.path.sep
|
||||
if sep == '\\':
|
||||
|
@ -250,9 +239,7 @@ class TestRequirementSet(object):
|
|||
'123f6a7e44a9115db1ef945d4d92c123dfe21815a06',
|
||||
lineno=2,
|
||||
))
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
assert_raises_regexp(
|
||||
HashErrors,
|
||||
|
@ -271,9 +258,7 @@ class TestRequirementSet(object):
|
|||
reqset.add_requirement(get_processed_req_from_line(
|
||||
'%s --hash=sha256:badbad' % file_url, lineno=1,
|
||||
))
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
assert_raises_regexp(
|
||||
HashErrors,
|
||||
|
@ -289,9 +274,7 @@ class TestRequirementSet(object):
|
|||
"""Make sure unhashed, unpinned, or otherwise unrepeatable
|
||||
dependencies get complained about when --require-hashes is on."""
|
||||
reqset = RequirementSet()
|
||||
finder = PackageFinder.create(
|
||||
[data.find_links], [], session=PipSession(),
|
||||
)
|
||||
finder = make_test_finder(find_links=[data.find_links])
|
||||
resolver = self._basic_resolver(finder)
|
||||
reqset.add_requirement(get_processed_req_from_line(
|
||||
'TopoRequires2==0.0.1 ' # requires TopoRequires
|
||||
|
|
|
@ -11,7 +11,6 @@ from pip._internal.download import PipSession
|
|||
from pip._internal.exceptions import (
|
||||
InstallationError, RequirementsFileParseError,
|
||||
)
|
||||
from pip._internal.index import PackageFinder
|
||||
from pip._internal.models.format_control import FormatControl
|
||||
from pip._internal.req.constructors import (
|
||||
install_req_from_editable, install_req_from_line,
|
||||
|
@ -20,7 +19,7 @@ from pip._internal.req.req_file import (
|
|||
break_args_options, ignore_comments, join_lines, parse_requirements,
|
||||
preprocess, process_line, skip_regex,
|
||||
)
|
||||
from tests.lib import requirements_file
|
||||
from tests.lib import make_test_finder, requirements_file
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -30,7 +29,7 @@ def session():
|
|||
|
||||
@pytest.fixture
|
||||
def finder(session):
|
||||
return PackageFinder.create([], [], session=session)
|
||||
return make_test_finder(session=session)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
Loading…
Reference in New Issue