2020-03-09 10:06:32 +01:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from pip._internal.cli.req_command import RequirementCommand
|
|
|
|
from pip._internal.commands.install import InstallCommand
|
|
|
|
from pip._internal.index.collector import LinkCollector
|
|
|
|
from pip._internal.index.package_finder import PackageFinder
|
|
|
|
# from pip._internal.models.index import PyPI
|
|
|
|
from pip._internal.models.search_scope import SearchScope
|
|
|
|
from pip._internal.models.selection_prefs import SelectionPreferences
|
|
|
|
from pip._internal.network.session import PipSession
|
2020-04-01 10:14:44 +02:00
|
|
|
from pip._internal.req.constructors import install_req_from_line
|
2020-03-09 10:06:32 +01:00
|
|
|
from pip._internal.req.req_tracker import get_requirement_tracker
|
2020-03-26 20:34:24 +01:00
|
|
|
from pip._internal.resolution.resolvelib.factory import Factory
|
2020-03-12 16:18:47 +01:00
|
|
|
from pip._internal.resolution.resolvelib.provider import PipProvider
|
2020-03-09 10:06:32 +01:00
|
|
|
from pip._internal.utils.temp_dir import TempDirectory, global_tempdir_manager
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def finder(data):
|
|
|
|
session = PipSession()
|
|
|
|
scope = SearchScope([str(data.packages)], [])
|
|
|
|
collector = LinkCollector(session, scope)
|
|
|
|
prefs = SelectionPreferences(allow_yanked=False)
|
|
|
|
finder = PackageFinder.create(collector, prefs)
|
|
|
|
yield finder
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def preparer(finder):
|
|
|
|
session = PipSession()
|
|
|
|
rc = InstallCommand("x", "y")
|
|
|
|
o = rc.parse_args([])
|
|
|
|
|
|
|
|
with global_tempdir_manager():
|
|
|
|
with TempDirectory() as tmp:
|
|
|
|
with get_requirement_tracker() as tracker:
|
|
|
|
preparer = RequirementCommand.make_requirement_preparer(
|
|
|
|
tmp,
|
|
|
|
options=o[0],
|
|
|
|
req_tracker=tracker,
|
|
|
|
session=session,
|
|
|
|
finder=finder,
|
|
|
|
use_user_site=False
|
|
|
|
)
|
|
|
|
|
|
|
|
yield preparer
|
2020-03-12 16:18:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2020-03-26 20:53:01 +01:00
|
|
|
def factory(finder, preparer):
|
|
|
|
yield Factory(
|
2020-03-23 18:57:26 +01:00
|
|
|
finder=finder,
|
|
|
|
preparer=preparer,
|
2020-04-01 10:14:44 +02:00
|
|
|
make_install_req=install_req_from_line,
|
2020-04-06 17:13:01 +02:00
|
|
|
force_reinstall=False,
|
2020-04-02 13:49:45 +02:00
|
|
|
ignore_installed=False,
|
2020-04-01 12:14:36 +02:00
|
|
|
ignore_requires_python=False,
|
2020-04-24 13:03:29 +02:00
|
|
|
upgrade_strategy="to-satisfy-only",
|
2020-04-01 12:14:36 +02:00
|
|
|
py_version_info=None,
|
2020-03-23 18:57:26 +01:00
|
|
|
)
|
2020-03-26 20:53:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def provider(factory):
|
2020-03-26 20:34:24 +01:00
|
|
|
yield PipProvider(
|
|
|
|
factory=factory,
|
|
|
|
ignore_dependencies=False,
|
|
|
|
)
|