1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00
pip/tests/functional/test_install_index.py
Tzu-ping Chung 42359a9605 Migrate tests to use pathlib.Path
The pip-specific Path implementation has been removed, and all its
usages replaced by pathlib.Path. The tmpdir and tmpdir_factory fixtures
are also removed, and all usages are replaced by tmp_path and
tmp_path_factory, which use pathlib.Path.

The pip() function now also accepts pathlib.Path so we don't need to put
str() everywhere. Path arguments are coerced with os.fspath() into str.
2022-06-08 19:58:46 +08:00

90 lines
2.7 KiB
Python

import shutil
import textwrap
import pytest
from tests.lib import PipTestEnvironment, TestData
@pytest.mark.usefixtures("with_wheel")
def test_find_links_relative_path(script: PipTestEnvironment, data: TestData) -> None:
"""Test find-links as a relative path."""
result = script.pip(
"install",
"parent==0.1",
"--no-index",
"--find-links",
"packages/",
cwd=data.root,
)
dist_info_folder = script.site_packages / "parent-0.1.dist-info"
initools_folder = script.site_packages / "parent"
result.did_create(dist_info_folder)
result.did_create(initools_folder)
def test_find_links_no_doctype(script: PipTestEnvironment, data: TestData) -> None:
shutil.copy(data.packages / "simple-1.0.tar.gz", script.scratch_path)
html = script.scratch_path.joinpath("index.html")
html.write_text('<a href="simple-1.0.tar.gz"></a>')
result = script.pip(
"install",
"simple==1.0",
"--no-index",
"--find-links",
script.scratch_path,
expect_stderr=True,
)
assert not result.stderr
@pytest.mark.usefixtures("with_wheel")
def test_find_links_requirements_file_relative_path(
script: PipTestEnvironment, data: TestData
) -> None:
"""Test find-links as a relative path to a reqs file."""
script.scratch_path.joinpath("test-req.txt").write_text(
textwrap.dedent(
"""
--no-index
--find-links={}
parent==0.1
""".format(
data.packages.as_posix()
)
)
)
result = script.pip(
"install",
"-r",
script.scratch_path / "test-req.txt",
cwd=data.root,
)
dist_info_folder = script.site_packages / "parent-0.1.dist-info"
initools_folder = script.site_packages / "parent"
result.did_create(dist_info_folder)
result.did_create(initools_folder)
@pytest.mark.usefixtures("with_wheel")
def test_install_from_file_index_hash_link(
script: PipTestEnvironment, data: TestData
) -> None:
"""
Test that a pkg can be installed from a file:// index using a link with a
hash
"""
result = script.pip("install", "-i", data.index_url(), "simple==1.0")
dist_info_folder = script.site_packages / "simple-1.0.dist-info"
result.did_create(dist_info_folder)
@pytest.mark.usefixtures("with_wheel")
def test_file_index_url_quoting(script: PipTestEnvironment, data: TestData) -> None:
"""
Test url quoting of file index url with a space
"""
index_url = data.index_url("in dex")
result = script.pip("install", "-vvv", "--index-url", index_url, "simple")
result.did_create(script.site_packages / "simple")
result.did_create(script.site_packages / "simple-1.0.dist-info")