use zeep 3.2 (#39119)

This commit is contained in:
Thomas NOËL 2020-01-20 15:41:49 +01:00
parent 09fbf833e9
commit 9015f164a5
6 changed files with 9 additions and 26 deletions

2
debian/control vendored
View File

@ -28,7 +28,7 @@ Depends: ${python:Depends},
python-dateutil,
python-pyproj,
python-pil,
python-zeep,
python-zeep (>= 3.2),
python-jsonschema,
python-unidecode,
python-pyexcel-io,

View File

@ -23,11 +23,8 @@ from django.utils.text import slugify
from django.utils.translation import ugettext_lazy as _
from django.http import HttpResponse, Http404
from zeep import Settings
from zeep.exceptions import Fault as WebFault, TransportError, XMLSyntaxError
try:
from zeep import Settings # zeep version >= 3.x
except ImportError:
Settings = None
from passerelle.base.models import BaseResource, HTTPResource
from passerelle.utils.api import endpoint
@ -120,10 +117,7 @@ class IParapheur(BaseResource, HTTPResource):
def call(self, service_name, *args, **kwargs):
strict_mode = kwargs.pop('strict_mode', True)
if Settings is not None: # zeep version >= 3.x:
client = self.get_client(settings=Settings(strict=strict_mode))
else:
client = self.get_client(strict=strict_mode)
client = self.get_client(settings=Settings(strict=strict_mode))
try:
result = getattr(client.overridden_service, service_name)(*args, **kwargs)
except WebFault as exc:

View File

@ -104,7 +104,7 @@ setup(name='passerelle',
'python-dateutil',
'Pillow',
'jsonschema < 3.1',
'zeep',
'zeep >= 3.2',
'pycrypto',
'unidecode',
'paramiko',

View File

@ -8,7 +8,6 @@ import base64
import xml.etree.ElementTree as ET
from dateutil import parser
from requests import Response
from zeep import __version__ as zeep_version
from requests.exceptions import ConnectionError
from django.core.urlresolvers import reverse
@ -43,10 +42,7 @@ def conn():
return conn
def assert_invalid_xml(err_desc):
if zeep_version < '3':
assert "Server returned HTTP status 200 (<nada>)" in err_desc
else:
assert "Server returned response (200) with invalid XML" in err_desc
assert "Server returned response (200) with invalid XML" in err_desc
def xmlmime():
return os.path.join(os.path.dirname(__file__), 'data','xmlmime.xml')

View File

@ -1,12 +1,9 @@
import pytest
import mock
import requests
from zeep import Settings
from zeep.plugins import Plugin
from zeep.exceptions import XMLParseError
try:
from zeep import Settings # zeep version >= 3.x
except ImportError:
Settings = None
from passerelle.utils.soap import SOAPClient
@ -58,10 +55,7 @@ def test_disable_strict_mode(mocked_post):
XMLParseError, match="Unexpected element u'price', expected u'skipMe'"):
client.service.GetLastTradePrice(tickerSymbol='banana')
if Settings is not None: # zeep version >= 3.x:
client = SOAPClient(soap_resource, settings=Settings(strict=False))
else:
client = SOAPClient(soap_resource, strict=False)
client = SOAPClient(soap_resource, settings=Settings(strict=False))
result = client.service.GetLastTradePrice(tickerSymbol='banana')
assert len(result) == 2
assert result['skipMe'] == None

View File

@ -1,6 +1,6 @@
[tox]
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/passerelle/{env:BRANCH_NAME:}
envlist = django111-pg-zeep2
envlist = django111-pg
[testenv]
usedevelop = True
@ -36,8 +36,7 @@ deps =
vobject
django-ratelimit
pyquery
zeep2: zeep < 3.0
zeep3: zeep >= 3.0
zeep<3.3
commands =
./get_wcs.sh
django111: py.test {posargs: {env:FAST:} --junitxml=test_{envname}_results.xml --cov-report xml --cov-report html --cov=passerelle/ --cov-config .coveragerc tests/}