1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-26 07:41:33 +03:00

remove source_address arg (#9418)

This commit is contained in:
Brad Warren
2022-09-26 19:30:05 -07:00
committed by GitHub
parent 314b2ef89b
commit c42dd567ca
3 changed files with 1 additions and 46 deletions

View File

@@ -15,20 +15,12 @@ from typing import Set
from typing import Text
from typing import Tuple
from typing import Union
import warnings
import josepy as jose
import OpenSSL
import requests
from requests.adapters import HTTPAdapter
from requests.utils import parse_header_links
# We're capturing the warnings described at
# https://github.com/requests/toolbelt/issues/331 until we can remove this
# dependency in Certbot 2.0.
with warnings.catch_warnings():
warnings.filterwarnings("ignore", "'urllib3.contrib.pyopenssl",
DeprecationWarning)
from requests_toolbelt.adapters.source import SourceAddressAdapter
from acme import challenges
from acme import crypto_util
@@ -489,14 +481,10 @@ class ClientNetwork:
:param bool verify_ssl: Whether to verify certificates on SSL connections.
:param str user_agent: String to send as User-Agent header.
:param float timeout: Timeout for requests.
:param source_address: Optional source address to bind to when making
requests. (deprecated since 1.30.0)
:type source_address: str or tuple(str, int)
"""
def __init__(self, key: jose.JWK, account: Optional[messages.RegistrationResource] = None,
alg: jose.JWASignature = jose.RS256, verify_ssl: bool = True,
user_agent: str = 'acme-python', timeout: int = DEFAULT_NETWORK_TIMEOUT,
source_address: Optional[Union[str, Tuple[str, int]]] = None) -> None:
user_agent: str = 'acme-python', timeout: int = DEFAULT_NETWORK_TIMEOUT) -> None:
self.key = key
self.account = account
self.alg = alg
@@ -507,11 +495,6 @@ class ClientNetwork:
self._default_timeout = timeout
adapter = HTTPAdapter()
if source_address is not None:
warnings.warn("Support for source_address is deprecated and will be "
"removed soon.", DeprecationWarning, stacklevel=2)
adapter = SourceAddressAdapter(source_address)
self.session.mount("http://", adapter)
self.session.mount("https://", adapter)

View File

@@ -12,7 +12,6 @@ install_requires = [
'pyrfc3339',
'pytz>=2019.3',
'requests>=2.20.0',
'requests-toolbelt>=0.3.0',
'setuptools>=41.6.0',
]

View File

@@ -791,32 +791,5 @@ class ClientNetworkWithMockedResponseTest(unittest.TestCase):
self.net.post('uri', self.obj, content_type=None, new_nonce_url='new_nonce_uri')
class ClientNetworkSourceAddressBindingTest(unittest.TestCase):
"""Tests that if ClientNetwork has a source IP set manually, the underlying library has
used the provided source address."""
def setUp(self):
self.source_address = "8.8.8.8"
def test_source_address_set(self):
with mock.patch('warnings.warn') as mock_warn:
net = ClientNetwork(key=None, alg=None, source_address=self.source_address)
mock_warn.assert_called_once()
self.assertIn('source_address', mock_warn.call_args[0][0])
for adapter in net.session.adapters.values():
self.assertIn(self.source_address, adapter.source_address)
def test_behavior_assumption(self):
"""This is a test that guardrails the HTTPAdapter behavior so that if the default for
a Session() changes, the assumptions here aren't violated silently."""
# Source address not specified, so the default adapter type should be bound -- this
# test should fail if the default adapter type is changed by requests
net = ClientNetwork(key=None, alg=None)
session = requests.Session()
for scheme in session.adapters:
client_network_adapter = net.session.adapters.get(scheme)
default_adapter = session.adapters.get(scheme)
self.assertEqual(client_network_adapter.__class__, default_adapter.__class__)
if __name__ == '__main__':
unittest.main() # pragma: no cover