summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Gorny <noah@gittabags.com>2020-07-02 21:59:43 +0300
committerNoah Gorny <noah@gittabags.com>2020-08-06 19:25:31 +0300
commitaae63795b2bf5bcde9e846215fd62fa1addd60a4 (patch)
treeaef800526767be5e2ca5c2f647efb4d463a79721
parent3d3c7b62f47f55bd0a5cf1673923b03c6e7553b3 (diff)
downloadpip-aae63795b2bf5bcde9e846215fd62fa1addd60a4.tar.gz
reqfile: Update extra-index-url/index-url in session from requirements file
Also update the relevant tests
-rw-r--r--src/pip/_internal/network/session.py8
-rw-r--r--src/pip/_internal/req/req_file.py4
-rw-r--r--tests/unit/test_req_file.py13
3 files changed, 21 insertions, 4 deletions
diff --git a/src/pip/_internal/network/session.py b/src/pip/_internal/network/session.py
index 39a4a546e..68ef68db5 100644
--- a/src/pip/_internal/network/session.py
+++ b/src/pip/_internal/network/session.py
@@ -305,6 +305,14 @@ class PipSession(requests.Session):
for host in trusted_hosts:
self.add_trusted_host(host, suppress_logging=True)
+ def update_index_urls(self, new_index_urls):
+ # type: (List[str]) -> None
+ """
+ :param new_index_urls: New index urls to update the authentication
+ handler with.
+ """
+ self.auth.index_urls = new_index_urls
+
def add_trusted_host(self, host, source=None, suppress_logging=False):
# type: (str, Optional[str], bool) -> None
"""
diff --git a/src/pip/_internal/req/req_file.py b/src/pip/_internal/req/req_file.py
index 105058228..72a568bdf 100644
--- a/src/pip/_internal/req/req_file.py
+++ b/src/pip/_internal/req/req_file.py
@@ -256,6 +256,10 @@ def handle_option_line(
value = relative_to_reqs_file
find_links.append(value)
+ if session:
+ # We need to update the auth urls in session
+ session.update_index_urls(index_urls)
+
search_scope = SearchScope(
find_links=find_links,
index_urls=index_urls,
diff --git a/tests/unit/test_req_file.py b/tests/unit/test_req_file.py
index 879f088a4..69d93a0cd 100644
--- a/tests/unit/test_req_file.py
+++ b/tests/unit/test_req_file.py
@@ -341,17 +341,22 @@ class TestProcessLine(object):
line_processor("--no-index", "file", 1, finder=finder)
assert finder.index_urls == []
- def test_set_finder_index_url(self, line_processor, finder):
- line_processor("--index-url=url", "file", 1, finder=finder)
+ def test_set_finder_index_url(self, line_processor, finder, session):
+ line_processor(
+ "--index-url=url", "file", 1, finder=finder, session=session)
assert finder.index_urls == ['url']
+ assert session.auth.index_urls == ['url']
def test_set_finder_find_links(self, line_processor, finder):
line_processor("--find-links=url", "file", 1, finder=finder)
assert finder.find_links == ['url']
- def test_set_finder_extra_index_urls(self, line_processor, finder):
- line_processor("--extra-index-url=url", "file", 1, finder=finder)
+ def test_set_finder_extra_index_urls(
+ self, line_processor, finder, session):
+ line_processor(
+ "--extra-index-url=url", "file", 1, finder=finder, session=session)
assert finder.index_urls == ['url']
+ assert session.auth.index_urls == ['url']
def test_set_finder_trusted_host(
self, line_processor, caplog, session, finder