Add enable_proxies/disable_proxies, deprecate enable_proxy/disable_proxy/_get_proxy

This commit is contained in:
Hugo van Kemenade 2022-01-25 00:27:12 +02:00
parent bafc3fe673
commit 152cb18ced
2 changed files with 33 additions and 9 deletions

View file

@ -189,7 +189,7 @@ class _Network:
self.cache_backend = None self.cache_backend = None
self.proxy_enabled = False self.proxy_enabled = False
self.proxy = None self.proxy = self.proxies = None
self.last_call_time = 0 self.last_call_time = 0
self.limit_rate = False self.limit_rate = False
@ -390,13 +390,32 @@ class _Network:
def enable_proxy(self, host, port): def enable_proxy(self, host, port):
"""Enable a default web proxy""" """Enable a default web proxy"""
warnings.warn(
"enable_proxy() is deprecated and will be removed in pylast 5.0.0, use "
"enable_proxies() instead. Note the parameters will also change in 5.0.0.",
DeprecationWarning,
stacklevel=2,
)
self.enable_proxies(host, port)
self.proxy = [host, _number(port)] def enable_proxies(self, host, port):
"""Enable a default web proxy"""
self.proxy = self.proxies = [host, _number(port)]
self.proxy_enabled = True self.proxy_enabled = True
def disable_proxy(self): def disable_proxy(self):
"""Disable using the web proxy""" """Disable using the web proxy"""
warnings.warn(
"disable_proxy() is deprecated and will be removed in pylast 5.0.0, use "
"disable_proxies() instead.",
DeprecationWarning,
stacklevel=2,
)
self.disable_proxies()
def disable_proxies(self):
"""Disable using the web proxy"""
self.proxy_enabled = False self.proxy_enabled = False
def is_proxy_enabled(self): def is_proxy_enabled(self):
@ -406,8 +425,13 @@ class _Network:
def _get_proxy(self): def _get_proxy(self):
"""Returns proxy details.""" """Returns proxy details."""
warnings.warn(
return self.proxy "_get_proxy() is deprecated and will be removed in pylast 5.0.0. "
"Use proxies directly instead.",
DeprecationWarning,
stacklevel=2,
)
return self.proxies
def enable_rate_limit(self): def enable_rate_limit(self):
"""Enables rate limiting for this network""" """Enables rate limiting for this network"""
@ -925,8 +949,8 @@ class _Request:
if self.network.is_proxy_enabled(): if self.network.is_proxy_enabled():
conn = HTTPSConnection( conn = HTTPSConnection(
context=SSL_CONTEXT, context=SSL_CONTEXT,
host=self.network._get_proxy()[0], host=self.network.proxy[0],
port=self.network._get_proxy()[1], port=self.network.proxy[1],
) )
try: try:

View file

@ -301,11 +301,11 @@ class TestPyLastNetwork(TestPyLastWithLastFm):
port = 1234 port = 1234
# Act / Assert # Act / Assert
self.network.enable_proxy(host, port) self.network.enable_proxies(host, port)
assert self.network.is_proxy_enabled() assert self.network.is_proxy_enabled()
assert self.network._get_proxy() == ["https://example.com", 1234] assert self.network.proxies == ["https://example.com", 1234]
self.network.disable_proxy() self.network.disable_proxies()
assert not self.network.is_proxy_enabled() assert not self.network.is_proxy_enabled()
def test_album_search(self): def test_album_search(self):