2021-09-21 06:44:29 +02:00
|
|
|
import pytest
|
|
|
|
|
2021-09-13 00:31:12 +02:00
|
|
|
from tests.lib import PipTestEnvironment, TestData, TestPipResult
|
2021-09-21 06:44:29 +02:00
|
|
|
|
2021-09-13 00:31:12 +02:00
|
|
|
|
|
|
|
def _assert_requested_present(
|
|
|
|
script: PipTestEnvironment, result: TestPipResult, name: str, version: str
|
|
|
|
) -> None:
|
2020-04-12 12:40:38 +02:00
|
|
|
dist_info = script.site_packages / name + "-" + version + ".dist-info"
|
|
|
|
requested = dist_info / "REQUESTED"
|
|
|
|
assert dist_info in result.files_created
|
|
|
|
assert requested in result.files_created
|
|
|
|
|
|
|
|
|
2021-09-13 00:31:12 +02:00
|
|
|
def _assert_requested_absent(
|
|
|
|
script: PipTestEnvironment, result: TestPipResult, name: str, version: str
|
|
|
|
) -> None:
|
2020-04-12 12:40:38 +02:00
|
|
|
dist_info = script.site_packages / name + "-" + version + ".dist-info"
|
|
|
|
requested = dist_info / "REQUESTED"
|
|
|
|
assert dist_info in result.files_created
|
|
|
|
assert requested not in result.files_created
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
2021-09-13 00:31:12 +02:00
|
|
|
def test_install_requested_basic(script: PipTestEnvironment, data: TestData) -> None:
|
2020-04-12 12:40:38 +02:00
|
|
|
result = script.pip(
|
|
|
|
"install", "--no-index", "-f", data.find_links, "require_simple"
|
|
|
|
)
|
|
|
|
_assert_requested_present(script, result, "require_simple", "1.0")
|
|
|
|
# dependency is not REQUESTED
|
|
|
|
_assert_requested_absent(script, result, "simple", "3.0")
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
2021-09-13 00:31:12 +02:00
|
|
|
def test_install_requested_requirements(
|
|
|
|
script: PipTestEnvironment, data: TestData
|
|
|
|
) -> None:
|
2021-08-08 00:23:53 +02:00
|
|
|
script.scratch_path.joinpath("requirements.txt").write_text("require_simple\n")
|
2020-04-12 12:40:38 +02:00
|
|
|
result = script.pip(
|
|
|
|
"install",
|
|
|
|
"--no-index",
|
|
|
|
"-f",
|
|
|
|
data.find_links,
|
|
|
|
"-r",
|
|
|
|
script.scratch_path / "requirements.txt",
|
|
|
|
)
|
|
|
|
_assert_requested_present(script, result, "require_simple", "1.0")
|
|
|
|
_assert_requested_absent(script, result, "simple", "3.0")
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
2021-09-13 00:31:12 +02:00
|
|
|
def test_install_requested_dep_in_requirements(
|
|
|
|
script: PipTestEnvironment, data: TestData
|
|
|
|
) -> None:
|
2020-04-12 12:40:38 +02:00
|
|
|
script.scratch_path.joinpath("requirements.txt").write_text(
|
|
|
|
"require_simple\nsimple<3\n"
|
|
|
|
)
|
|
|
|
result = script.pip(
|
|
|
|
"install",
|
|
|
|
"--no-index",
|
|
|
|
"-f",
|
|
|
|
data.find_links,
|
|
|
|
"-r",
|
|
|
|
script.scratch_path / "requirements.txt",
|
|
|
|
)
|
|
|
|
_assert_requested_present(script, result, "require_simple", "1.0")
|
|
|
|
# simple must have REQUESTED because it is in requirements.txt
|
|
|
|
_assert_requested_present(script, result, "simple", "2.0")
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
2021-09-13 00:31:12 +02:00
|
|
|
def test_install_requested_reqs_and_constraints(
|
|
|
|
script: PipTestEnvironment, data: TestData
|
|
|
|
) -> None:
|
2021-08-08 00:23:53 +02:00
|
|
|
script.scratch_path.joinpath("requirements.txt").write_text("require_simple\n")
|
2020-04-12 12:40:38 +02:00
|
|
|
script.scratch_path.joinpath("constraints.txt").write_text("simple<3\n")
|
|
|
|
result = script.pip(
|
|
|
|
"install",
|
|
|
|
"--no-index",
|
|
|
|
"-f",
|
|
|
|
data.find_links,
|
|
|
|
"-r",
|
|
|
|
script.scratch_path / "requirements.txt",
|
|
|
|
"-c",
|
|
|
|
script.scratch_path / "constraints.txt",
|
|
|
|
)
|
|
|
|
_assert_requested_present(script, result, "require_simple", "1.0")
|
|
|
|
# simple must not have REQUESTED because it is merely a constraint
|
|
|
|
_assert_requested_absent(script, result, "simple", "2.0")
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
2021-09-13 00:31:12 +02:00
|
|
|
def test_install_requested_in_reqs_and_constraints(
|
|
|
|
script: PipTestEnvironment, data: TestData
|
|
|
|
) -> None:
|
2020-04-12 12:40:38 +02:00
|
|
|
script.scratch_path.joinpath("requirements.txt").write_text(
|
|
|
|
"require_simple\nsimple\n"
|
|
|
|
)
|
|
|
|
script.scratch_path.joinpath("constraints.txt").write_text("simple<3\n")
|
|
|
|
result = script.pip(
|
|
|
|
"install",
|
|
|
|
"--no-index",
|
|
|
|
"-f",
|
|
|
|
data.find_links,
|
|
|
|
"-r",
|
|
|
|
script.scratch_path / "requirements.txt",
|
|
|
|
"-c",
|
|
|
|
script.scratch_path / "constraints.txt",
|
|
|
|
)
|
|
|
|
_assert_requested_present(script, result, "require_simple", "1.0")
|
|
|
|
# simple must have REQUESTED because it is in requirements.txt
|
|
|
|
_assert_requested_present(script, result, "simple", "2.0")
|