mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from pip._internal.models.search_scope import SearchScope
|
|
from pip._internal.req.constructors import install_req_from_line
|
|
|
|
|
|
class TestSearchScope:
|
|
def test_get_formatted_locations_basic_auth(self) -> None:
|
|
"""
|
|
Test that basic authentication credentials defined in URL
|
|
is not included in formatted output.
|
|
"""
|
|
index_urls = [
|
|
"https://pypi.org/simple",
|
|
"https://repo-user:repo-pass@repo.domain.com",
|
|
]
|
|
find_links = ["https://links-user:links-pass@page.domain.com"]
|
|
search_scope = SearchScope(
|
|
find_links=find_links,
|
|
index_urls=index_urls,
|
|
)
|
|
|
|
result = search_scope.get_formatted_locations()
|
|
assert "repo-user:****@repo.domain.com" in result
|
|
assert "repo-pass" not in result
|
|
assert "links-user:****@page.domain.com" in result
|
|
assert "links-pass" not in result
|
|
|
|
def test_get_index_urls_locations(self) -> None:
|
|
"""Check that the canonical name is on all indexes"""
|
|
search_scope = SearchScope(
|
|
find_links=[],
|
|
index_urls=["file://index1/", "file://index2"],
|
|
)
|
|
req = install_req_from_line("Complex_Name")
|
|
assert req.name is not None
|
|
actual = search_scope.get_index_urls_locations(req.name)
|
|
assert actual == [
|
|
"file://index1/complex-name/",
|
|
"file://index2/complex-name/",
|
|
]
|