Skip to content

Commit 5035b26

Browse files
committed
fix: pytest deps still need to be injected
1 parent b7a5c34 commit 5035b26

1 file changed

Lines changed: 35 additions & 36 deletions

File tree

src/python/pants/backend/python/goals/pytest_runner.py

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
setup_venv_pex_process,
3838
)
3939
from pants.backend.python.util_rules.pex_from_targets import RequirementsPexRequest
40-
from pants.backend.python.util_rules.pex_requirements import PexRequirements
40+
from pants.backend.python.util_rules.pex_requirements import PexRequirements, Resolve
4141
from pants.backend.python.util_rules.python_sources import (
4242
PythonSourceFilesRequest,
4343
prepare_python_sources,
@@ -294,7 +294,24 @@ async def setup_pytest_for_target(
294294
requirements_pex_get = create_pex(**implicitly(RequirementsPexRequest(addresses)))
295295

296296
pytest_pex_get = None
297-
if not use_target_resolve_for_pytest:
297+
if use_target_resolve_for_pytest:
298+
# We still need to create a PEX with pytest requirements from the target resolve
299+
# just need to make sure the versions are coming from the target resolve.
300+
pytest_req_strings = pytest.requirements if pytest.requirements else pytest.default_requirements
301+
pytest_requirements = PexRequirements(
302+
pytest_req_strings,
303+
from_superset=Resolve(target_resolve, use_entire_lockfile=False),
304+
description_of_origin="pytest requirements from target resolve",
305+
)
306+
pytest_pex_get = create_pex(
307+
PexRequest(
308+
output_filename="pytest_from_target_resolve.pex",
309+
internal_only=True,
310+
requirements=pytest_requirements,
311+
interpreter_constraints=interpreter_constraints,
312+
)
313+
)
314+
else:
298315
pytest_pex_get = create_pex(
299316
pytest.to_pex_request(interpreter_constraints=interpreter_constraints)
300317
)
@@ -316,37 +333,21 @@ async def setup_pytest_for_target(
316333
EnvironmentVarsRequest(request.metadata.extra_env_vars), **implicitly()
317334
)
318335

319-
if pytest_pex_get is not None:
320-
(
321-
pytest_pex,
322-
requirements_pex,
323-
prepared_sources,
324-
field_set_source_files,
325-
field_set_extra_env,
326-
extra_output_directory_digest,
327-
) = await concurrently(
328-
pytest_pex_get,
329-
requirements_pex_get,
330-
prepared_sources_get,
331-
field_set_source_files_get,
332-
field_set_extra_env_get,
333-
extra_output_directory_digest_get,
334-
)
335-
else:
336-
pytest_pex = None
337-
(
338-
requirements_pex,
339-
prepared_sources,
340-
field_set_source_files,
341-
field_set_extra_env,
342-
extra_output_directory_digest,
343-
) = await concurrently(
344-
requirements_pex_get,
345-
prepared_sources_get,
346-
field_set_source_files_get,
347-
field_set_extra_env_get,
348-
extra_output_directory_digest_get,
349-
)
336+
(
337+
pytest_pex,
338+
requirements_pex,
339+
prepared_sources,
340+
field_set_source_files,
341+
field_set_extra_env,
342+
extra_output_directory_digest,
343+
) = await concurrently(
344+
pytest_pex_get,
345+
requirements_pex_get,
346+
prepared_sources_get,
347+
field_set_source_files_get,
348+
field_set_extra_env_get,
349+
extra_output_directory_digest_get,
350+
)
350351

351352
local_dists = await build_local_dists(
352353
LocalDistsPexRequest(
@@ -356,9 +357,7 @@ async def setup_pytest_for_target(
356357
)
357358
)
358359

359-
pex_path_components: list[Pex] = [requirements_pex, local_dists.pex, *request.additional_pexes]
360-
if pytest_pex is not None:
361-
pex_path_components.insert(0, pytest_pex)
360+
pex_path_components: list[Pex] = [pytest_pex, requirements_pex, local_dists.pex, *request.additional_pexes]
362361

363362
pytest_runner_pex_get = create_venv_pex(
364363
**implicitly(

0 commit comments

Comments
 (0)