1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Add more tests

This commit is contained in:
q0w 2022-12-15 04:21:38 +03:00
parent 92730f6f63
commit be21f0dd10

View file

@ -2,7 +2,7 @@ import json
import os
import textwrap
from pathlib import Path
from typing import TYPE_CHECKING, Any, Dict, Optional
from typing import TYPE_CHECKING, Any
import pytest
@ -34,9 +34,7 @@ class ArgRecordingSdist:
class ArgRecordingSdistMaker(Protocol):
def __call__(
self, name: str, extra_files: Optional[Dict[str, str]] = None
) -> ArgRecordingSdist:
def __call__(self, name: str, **kwargs: Any) -> ArgRecordingSdist:
...
@ -44,20 +42,16 @@ class ArgRecordingSdistMaker(Protocol):
def arg_recording_sdist_maker(
script: PipTestEnvironment,
) -> ArgRecordingSdistMaker:
arg_writing_setup_py = textwrap.dedent(
arg_writing_setup_py_prelude = textwrap.dedent(
"""
import io
import json
import os
import sys
from setuptools import setup
args_path = os.path.join(os.environ["OUTPUT_DIR"], "{name}.json")
with open(args_path, 'w') as f:
json.dump(sys.argv, f)
setup(name={name!r}, version="0.1.0")
"""
)
output_dir = script.scratch_path.joinpath("args_recording_sdist_maker_output")
@ -65,12 +59,16 @@ def arg_recording_sdist_maker(
script.environ["OUTPUT_DIR"] = str(output_dir)
def _arg_recording_sdist_maker(
name: str, extra_files: Optional[Dict[str, str]] = None
name: str,
**kwargs: Any,
) -> ArgRecordingSdist:
_extra_files = {"setup.py": arg_writing_setup_py.format(name=name)}
if extra_files is not None:
_extra_files.update(extra_files)
sdist_path = create_basic_sdist_for_package(script, name, "0.1.0", _extra_files)
sdist_path = create_basic_sdist_for_package(
script,
name,
"0.1.0",
setup_py_prelude=arg_writing_setup_py_prelude.format(name=name),
**kwargs,
)
args_path = output_dir / f"{name}.json"
return ArgRecordingSdist(sdist_path, args_path)
@ -835,9 +833,10 @@ def test_location_related_install_option_fails(script: PipTestEnvironment) -> No
assert "['--home'] from simple" in result.stderr
@pytest.mark.network
def test_config_settings_local_to_package(
script: PipTestEnvironment, arg_recording_sdist_maker: ArgRecordingSdistMaker
script: PipTestEnvironment,
common_wheels: Path,
arg_recording_sdist_maker: ArgRecordingSdistMaker,
) -> None:
pyproject_toml = textwrap.dedent(
"""
@ -847,10 +846,16 @@ def test_config_settings_local_to_package(
"""
)
simple1_sdist = arg_recording_sdist_maker(
"simple1", {"pyproject.toml": pyproject_toml}
"simple1",
extra_files={"pyproject.toml": pyproject_toml},
depends=["bar"],
)
bar_sdist = arg_recording_sdist_maker(
"bar", extra_files={"pyproject.toml": pyproject_toml}
)
simple2_sdist = arg_recording_sdist_maker(
"simple2", {"pyproject.toml": pyproject_toml}
"simple2",
extra_files={"pyproject.toml": pyproject_toml},
)
reqs_file = script.scratch_path.joinpath("reqs.txt")
@ -862,15 +867,21 @@ def test_config_settings_local_to_package(
"""
)
)
script.pip(
"install",
"--no-index",
"-f",
str(simple1_sdist.sdist_path.parent),
script.scratch_path,
"-f",
common_wheels,
"-r",
reqs_file,
)
simple1_args = simple1_sdist.args()
assert "--verbose" in simple1_args
bar_args = bar_sdist.args()
assert "--verbose" in bar_args
simple2_args = simple2_sdist.args()
assert "--verbose" not in simple2_args