mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
Make factory available in tests as a fixture
This commit is contained in:
parent
4fd12fbf56
commit
b1272a98f9
|
@ -49,18 +49,22 @@ def preparer(finder):
|
|||
|
||||
|
||||
@pytest.fixture
|
||||
def provider(finder, preparer):
|
||||
def factory(finder, preparer):
|
||||
make_install_req = partial(
|
||||
install_req_from_req_string,
|
||||
isolated=False,
|
||||
wheel_cache=None,
|
||||
use_pep517=None,
|
||||
)
|
||||
factory = Factory(
|
||||
yield Factory(
|
||||
finder=finder,
|
||||
preparer=preparer,
|
||||
make_install_req=make_install_req,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def provider(factory):
|
||||
yield PipProvider(
|
||||
factory=factory,
|
||||
ignore_dependencies=False,
|
||||
|
|
|
@ -48,36 +48,36 @@ def test_cases(data):
|
|||
yield test_cases
|
||||
|
||||
|
||||
def test_rlr_requirement_has_name(test_cases, provider):
|
||||
def test_rlr_requirement_has_name(test_cases, factory, provider):
|
||||
"""All requirements should have a name"""
|
||||
for requirement, name, matches in test_cases:
|
||||
ireq = install_req_from_line(requirement)
|
||||
req = provider.make_requirement(ireq)
|
||||
req = factory.make_requirement(ireq)
|
||||
assert req.name == name
|
||||
|
||||
|
||||
def test_rlr_correct_number_of_matches(test_cases, provider):
|
||||
def test_rlr_correct_number_of_matches(test_cases, factory, provider):
|
||||
"""Requirements should return the correct number of candidates"""
|
||||
for requirement, name, matches in test_cases:
|
||||
ireq = install_req_from_line(requirement)
|
||||
req = provider.make_requirement(ireq)
|
||||
req = factory.make_requirement(ireq)
|
||||
assert len(req.find_matches()) == matches
|
||||
|
||||
|
||||
def test_rlr_candidates_match_requirement(test_cases, provider):
|
||||
def test_rlr_candidates_match_requirement(test_cases, factory, provider):
|
||||
"""Candidates returned from find_matches should satisfy the requirement"""
|
||||
for requirement, name, matches in test_cases:
|
||||
ireq = install_req_from_line(requirement)
|
||||
req = provider.make_requirement(ireq)
|
||||
req = factory.make_requirement(ireq)
|
||||
for c in req.find_matches():
|
||||
assert isinstance(c, Candidate)
|
||||
assert req.is_satisfied_by(c)
|
||||
|
||||
|
||||
def test_rlr_full_resolve(provider):
|
||||
def test_rlr_full_resolve(factory, provider):
|
||||
"""A very basic full resolve"""
|
||||
ireq = install_req_from_line("simplewheel")
|
||||
req = provider.make_requirement(ireq)
|
||||
req = factory.make_requirement(ireq)
|
||||
r = Resolver(provider, BaseReporter())
|
||||
result = r.resolve([req])
|
||||
assert set(result.mapping.keys()) == {'simplewheel'}
|
||||
|
|
Loading…
Reference in a new issue