From 06266d04661ad74ab293587ff776f7ef9e4c13d2 Mon Sep 17 00:00:00 2001 From: "Plattner, Thomas" Date: Wed, 19 Jun 2019 15:24:36 +0200 Subject: [PATCH] Add proxy support --- fedex/base_service.py | 4 ++-- fedex/config.py | 8 +++++++- tests/common.py | 9 +++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/fedex/base_service.py b/fedex/base_service.py index 1fd8645..90ca7cc 100755 --- a/fedex/base_service.py +++ b/fedex/base_service.py @@ -12,7 +12,7 @@ import suds from suds.client import Client -from suds.plugin import MessagePlugin +from suds.plugin import MessagePlugin class GeneralSudsPlugin(MessagePlugin): @@ -132,7 +132,7 @@ def __init__(self, config_obj, wsdl_name, *args, **kwargs): self.logger.info("Using production server.") self.wsdl_path = os.path.join(config_obj.wsdl_path, wsdl_name) - self.client = Client('file:///%s' % self.wsdl_path.lstrip('/'), plugins=[GeneralSudsPlugin()]) + self.client = Client('file:///%s' % self.wsdl_path.lstrip('/'), plugins=[GeneralSudsPlugin()], proxy=config_obj.proxy) # self.client.options.cache.clear() # Clear the cache, then re-init client when changing wsdl file. self.VersionId = None diff --git a/fedex/config.py b/fedex/config.py index 2fc309f..3b86983 100644 --- a/fedex/config.py +++ b/fedex/config.py @@ -21,7 +21,7 @@ class FedexConfig(object): """ def __init__(self, key, password, account_number=None, meter_number=None, freight_account_number=None, - integrator_id=None, wsdl_path=None, express_region_code=None, use_test_server=False): + integrator_id=None, wsdl_path=None, express_region_code=None, use_test_server=False, proxy=None): """ @type key: L{str} @param key: Developer test key. @@ -48,6 +48,10 @@ def __init__(self, key, password, account_number=None, meter_number=None, freigh instead of the production server. You will also need to make sure that your L{FedexConfig} object has a production account number, meter number, authentication key, and password. + @type proxy: L{str} + @keyword proxy: Enter your list of proxy servers int the format + proxy = {'http': "http://......:8080", 'https': "http://.......:8080", } + if needed. """ self.key = key """@ivar: Developer test key.""" @@ -65,6 +69,8 @@ def __init__(self, key, password, account_number=None, meter_number=None, freigh """@ivar: Web services ExpressRegionCode""" self.use_test_server = use_test_server """@ivar: When True, point to the test server.""" + self.proxy = proxy + """@ivar: A list of proxy servers.""" # Allow overriding of the WDSL path. if wsdl_path is None: diff --git a/tests/common.py b/tests/common.py index 4a0d0e6..3bb3f2e 100644 --- a/tests/common.py +++ b/tests/common.py @@ -11,7 +11,8 @@ def get_fedex_config(): """ # Test server (Enter your credentials here) return FedexConfig(key='', - password='', - account_number='', - meter_number='', - use_test_server=True) + password='', + account_number='', + meter_number='', + use_test_server=True, + proxy = None)