1
1
Fork 0
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:
Tzu-ping Chung 2020-03-27 03:53:01 +08:00
parent 4fd12fbf56
commit b1272a98f9
2 changed files with 14 additions and 10 deletions

View file

@ -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,

View file

@ -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'}