From 88e3f70b3d953c03bdefe99d6758b2bbd55ae06b Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Sun, 29 Jul 2018 15:04:35 +0200 Subject: [PATCH] backends: Get proxies using stdlib functions --- setup.cfg | 3 +-- weboob/applications/boobank/boobank.py | 4 ++-- weboob/core/repositories.py | 4 ++-- weboob/tools/backend.py | 20 ++------------------ 4 files changed, 7 insertions(+), 24 deletions(-) diff --git a/setup.cfg b/setup.cfg index 1efde93ae5..fbbe7c4d6a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,8 +4,7 @@ detailed-errors = 1 with-doctest = 1 with-coverage = 1 where = weboob -tests = weboob.tools.backend, - weboob.tools.capabilities.bank.iban, +tests = weboob.tools.capabilities.bank.iban, weboob.tools.capabilities.bank.transactions, weboob.tools.capabilities.paste, weboob.tools.application.formatters.json, diff --git a/weboob/applications/boobank/boobank.py b/weboob/applications/boobank/boobank.py index e1c1706cf6..26946712a4 100644 --- a/weboob/applications/boobank/boobank.py +++ b/weboob/applications/boobank/boobank.py @@ -41,7 +41,7 @@ from weboob.capabilities.profile import CapProfile from weboob.tools.application.repl import ReplApplication, defaultcount from weboob.tools.application.formatters.iformatter import IFormatter, PrettyFormatter -from weboob.tools.backend import env_proxies +from weboob.tools.compat import getproxies from weboob.tools.log import getLogger from weboob.tools.misc import to_unicode @@ -788,7 +788,7 @@ def do_budgea(self, line): username, password = self.parse_command_args(line, 2, 2) client = APIBrowser(baseurl='https://budgea.biapi.pro/2.0/', - proxy=env_proxies(), + proxy=getproxies(), logger=getLogger('apibrowser', self.logger)) client.set_profile(Weboob(self.VERSION)) client.TIMEOUT = 60 diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index 9e98ee4e5b..dc8cbe80c0 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -474,14 +474,14 @@ def __init__(self, workdir, datadir, version): def load_browser(self): from weboob.browser.browsers import Browser from weboob.browser.profiles import Weboob as WeboobProfile - from weboob.tools.backend import env_proxies + from weboob.tools.compat import getproxies class WeboobBrowser(Browser): PROFILE = WeboobProfile(self.version) if self.browser is None: self.browser = WeboobBrowser( logger=getLogger('browser', parent=self.logger), - proxy=env_proxies()) + proxy=getproxies()) def create_dir(self, name): if not os.path.exists(name): diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py index bb49ffd4bd..c8bc1c5003 100644 --- a/weboob/tools/backend.py +++ b/weboob/tools/backend.py @@ -23,7 +23,7 @@ from weboob.capabilities.base import BaseObject, Capability, FieldNotFound, NotAvailable, NotLoaded from weboob.exceptions import ModuleInstallError -from weboob.tools.compat import basestring +from weboob.tools.compat import basestring, getproxies from weboob.tools.log import getLogger from weboob.tools.misc import iter_fields from weboob.tools.value import ValuesDict @@ -353,7 +353,7 @@ def create_browser(self, *args, **kwargs): def get_proxy(self): # Get proxies from environment variables - proxies = env_proxies(environ=os.environ) + proxies = getproxies() # Override them with backend-specific config if '_proxy' in self._private_config: proxies['http'] = self._private_config['_proxy'] @@ -486,19 +486,3 @@ def __new__(cls, weboob, name, config=None, storage=None, logger=None, nofail=Fa cls.__bases__ = tuple([parent] + list(cls.iter_caps())) return object.__new__(cls) - - -def env_proxies(environ=os.environ): - proxies = {} - proxies['http'] = environ.get('http_proxy', environ.get('HTTP_PROXY')) - proxies['https'] = environ.get('https_proxy', environ.get('HTTPS_PROXY')) - return proxies - - -def test(): - assert env_proxies({}) == {'http': None, 'https': None} - assert env_proxies({'http_proxy': 'a'}) == {'http': 'a', 'https': None} - assert env_proxies({'HTTP_PROXY': 'a'}) == {'http': 'a', 'https': None} - assert env_proxies({'https_proxy': 'b'}) == {'http': None, 'https': 'b'} - assert env_proxies({'HTTPS_PROXY': 'b'}) == {'http': None, 'https': 'b'} - assert env_proxies({'https_proxy': 'c', 'HTTPS_PROXY': 'd'}) == {'http': None, 'https': 'c'} -- GitLab