diff --git a/odoo/tools/zeep/__init__.py b/odoo/tools/zeep/__init__.py index cb3a74b1249..f0a747a0734 100644 --- a/odoo/tools/zeep/__init__.py +++ b/odoo/tools/zeep/__init__.py @@ -1,7 +1,8 @@ from zeep.transports import Transport from zeep.plugins import Plugin from zeep.settings import Settings -from zeep.ns import * from . import exceptions +from . import ns +from . import wsdl from .client import Client diff --git a/odoo/tools/zeep/client.py b/odoo/tools/zeep/client.py index b335aa23b9d..900029e0e62 100644 --- a/odoo/tools/zeep/client.py +++ b/odoo/tools/zeep/client.py @@ -2,11 +2,14 @@ import zeep from decimal import Decimal from datetime import date, datetime, timedelta +from requests import Response from types import SimpleNamespace, FunctionType TIMEOUT = 30 -SERIALIZABLE_TYPES = (type(None), bool, int, float, str, bytes, tuple, list, dict, Decimal, date, datetime, timedelta) +SERIALIZABLE_TYPES = ( + type(None), bool, int, float, str, bytes, tuple, list, dict, Decimal, date, datetime, timedelta, Response +) class Client: @@ -17,19 +20,16 @@ class Client: * serializing the returned values of its methods. """ def __init__(self, *args, **kwargs): - load_timeout = kwargs.pop('timeout', None) - operation_timeout = kwargs.pop('operation_timeout', None) - session = kwargs.pop('session', None) + transport = kwargs.setdefault('transport', zeep.Transport()) + # The timeout for loading wsdl and xsd documents. + transport.load_timeout = kwargs.pop('timeout', None) or transport.load_timeout or TIMEOUT + # The timeout for operations (POST/GET) + transport.operation_timeout = kwargs.pop('operation_timeout', None) or transport.operation_timeout or TIMEOUT + # The `requests.session` used for HTTP requests + transport.session = kwargs.pop('session', None) or transport.session client = zeep.Client(*args, **kwargs) - # The timeout for loading wsdl and xsd documents. - client.transport.load_timeout = load_timeout or client.transport.load_timeout or TIMEOUT - # The timeout for operations (POST/GET) - client.transport.operation_timeout = operation_timeout or client.transport.operation_timeout or TIMEOUT - if session: - client.transport.session = session - self.__obj = client self.__service = None diff --git a/odoo/tools/zeep/ns.py b/odoo/tools/zeep/ns.py new file mode 100644 index 00000000000..f1dc68cce36 --- /dev/null +++ b/odoo/tools/zeep/ns.py @@ -0,0 +1 @@ +from zeep.ns import * diff --git a/odoo/tools/zeep/wsdl/__init__.py b/odoo/tools/zeep/wsdl/__init__.py new file mode 100644 index 00000000000..eb018c3ff09 --- /dev/null +++ b/odoo/tools/zeep/wsdl/__init__.py @@ -0,0 +1 @@ +from . import utils diff --git a/odoo/tools/zeep/wsdl/utils.py b/odoo/tools/zeep/wsdl/utils.py index e9b8cc3c653..18ab45c4f00 100644 --- a/odoo/tools/zeep/wsdl/utils.py +++ b/odoo/tools/zeep/wsdl/utils.py @@ -1 +1 @@ -from zeep.wsdl.utils import etree_to_string +from zeep.wsdl.utils import etree_to_string, get_or_create_header diff --git a/odoo/tools/zeep/wsse/username/__init__.py b/odoo/tools/zeep/wsse/username/__init__.py index 8b5481e46a5..7cd675c5064 100644 --- a/odoo/tools/zeep/wsse/username/__init__.py +++ b/odoo/tools/zeep/wsse/username/__init__.py @@ -1 +1 @@ -from zeep.wsse.username import UsernameToken +from zeep.wsse.username import *