2021-01-18 05:01:24 +01:00
|
|
|
import pytest
|
|
|
|
|
2020-02-01 13:40:30 +01:00
|
|
|
from tests.lib import _create_test_package, path_to_url
|
2021-04-04 15:39:39 +02:00
|
|
|
from tests.lib.direct_url import get_created_direct_url
|
2020-02-01 13:40:30 +01:00
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_find_links_no_direct_url(script):
|
2020-02-01 13:40:30 +01:00
|
|
|
result = script.pip_install_local("simple")
|
2021-04-04 15:39:39 +02:00
|
|
|
assert not get_created_direct_url(result, "simple")
|
2020-02-01 13:40:30 +01:00
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_vcs_editable_no_direct_url(script):
|
2020-02-01 13:40:30 +01:00
|
|
|
pkg_path = _create_test_package(script, name="testpkg")
|
|
|
|
args = ["install", "-e", "git+%s#egg=testpkg" % path_to_url(pkg_path)]
|
|
|
|
result = script.pip(*args)
|
|
|
|
# legacy editable installs do not generate .dist-info,
|
|
|
|
# hence no direct_url.json
|
2021-04-04 15:39:39 +02:00
|
|
|
assert not get_created_direct_url(result, "testpkg")
|
2020-02-01 13:40:30 +01:00
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_vcs_non_editable_direct_url(script):
|
2020-02-01 13:40:30 +01:00
|
|
|
pkg_path = _create_test_package(script, name="testpkg")
|
|
|
|
url = path_to_url(pkg_path)
|
2020-12-23 20:25:12 +01:00
|
|
|
args = ["install", f"git+{url}#egg=testpkg"]
|
2020-02-01 13:40:30 +01:00
|
|
|
result = script.pip(*args)
|
2021-04-04 15:39:39 +02:00
|
|
|
direct_url = get_created_direct_url(result, "testpkg")
|
2020-02-01 13:40:30 +01:00
|
|
|
assert direct_url
|
|
|
|
assert direct_url.url == url
|
|
|
|
assert direct_url.info.vcs == "git"
|
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_archive_direct_url(script, data):
|
2020-02-01 13:40:30 +01:00
|
|
|
req = "simple @ " + path_to_url(data.packages / "simple-2.0.tar.gz")
|
|
|
|
assert req.startswith("simple @ file://")
|
|
|
|
result = script.pip("install", req)
|
2021-04-04 15:39:39 +02:00
|
|
|
assert get_created_direct_url(result, "simple")
|
2021-01-18 05:01:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.network
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_vcs_constraint_direct_url(script):
|
2021-01-18 05:01:24 +01:00
|
|
|
constraints_file = script.scratch_path / "constraints.txt"
|
|
|
|
constraints_file.write_text(
|
|
|
|
"git+https://github.com/pypa/pip-test-package"
|
|
|
|
"@5547fa909e83df8bd743d3978d6667497983a4b7"
|
|
|
|
"#egg=pip-test-package"
|
|
|
|
)
|
|
|
|
result = script.pip("install", "pip-test-package", "-c", constraints_file)
|
2021-04-04 15:39:39 +02:00
|
|
|
assert get_created_direct_url(result, "pip_test_package")
|
2021-01-18 05:01:24 +01:00
|
|
|
|
|
|
|
|
2021-09-21 06:44:29 +02:00
|
|
|
@pytest.mark.usefixtures("with_wheel")
|
|
|
|
def test_install_vcs_constraint_direct_file_url(script):
|
2021-01-18 05:01:24 +01:00
|
|
|
pkg_path = _create_test_package(script, name="testpkg")
|
|
|
|
url = path_to_url(pkg_path)
|
|
|
|
constraints_file = script.scratch_path / "constraints.txt"
|
|
|
|
constraints_file.write_text(f"git+{url}#egg=testpkg")
|
|
|
|
result = script.pip("install", "testpkg", "-c", constraints_file)
|
2021-04-04 15:39:39 +02:00
|
|
|
assert get_created_direct_url(result, "testpkg")
|