test iparapheur: mock responses as binary data (#38781)
This commit is contained in:
parent
6af2012a69
commit
1fe9040b73
|
@ -13,6 +13,7 @@ from requests.exceptions import ConnectionError
|
|||
from django.core.urlresolvers import reverse
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import force_bytes
|
||||
|
||||
from passerelle.base.models import ApiUser, AccessRight
|
||||
from passerelle.contrib.iparapheur.models import IParapheur
|
||||
|
@ -65,7 +66,7 @@ def iph_mocked_get(url, params=None, **kwargs):
|
|||
else:
|
||||
raise Exception('my fault error, url is not yet mocked: %s' % url)
|
||||
|
||||
response._content=file(target_file).read()
|
||||
response._content = open(target_file, 'rb').read()
|
||||
response.status_code = 200
|
||||
return response
|
||||
|
||||
|
@ -117,7 +118,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
for filename in ('iparapheur_test.odt', 'iparapheur_test.pdf'):
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><MessageRetour><codeRetour>OK</codeRetour><message>Dossier %s soumis dans le circuit</message><severite>INFO</severite></MessageRetour><DossierID>%s</DossierID></CreerDossierResponse></S:Body></S:Envelope>""" % (filename, file_id)
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
title, ext = filename.split('.')
|
||||
base64_data = 'VGVzdCBEb2N1bWVudA=='
|
||||
|
@ -150,7 +151,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
# Missing dossier_id in response
|
||||
title = 'foo'
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><MessageRetour><codeRetour>OK</codeRetour><message>Dossier %s soumis dans le circuit</message><severite>INFO</severite></MessageRetour><DossierID></DossierID></CreerDossierResponse></S:Body></S:Envelope>""" % title
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
base64_data = 'VGVzdCBEb2N1bWVudA=='
|
||||
data = {
|
||||
|
@ -173,7 +174,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# KO
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><MessageRetour><codeRetour>KO</codeRetour><message>KOmessage</message><severite>INFO</severite></MessageRetour></CreerDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.post_json(url, params=data, status=500)
|
||||
assert (BASE_URL,) == mocked_post.call_args[0]
|
||||
|
@ -183,7 +184,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# unknown response
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"></CreerDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.post_json(url, params=data, status=500)
|
||||
assert (BASE_URL,) == mocked_post.call_args[0]
|
||||
|
@ -193,7 +194,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# bad response
|
||||
soap_response = """<nada>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.post_json(url, params=data, status=500)
|
||||
assert (BASE_URL,) == mocked_post.call_args[0]
|
||||
|
@ -217,7 +218,7 @@ def test_create_file(mocked_post, mocked_get, app, conn):
|
|||
'endpoint': 'create-file', 'slug': conn.slug})
|
||||
url += '?apikey=%s' % API_KEY
|
||||
soap_response = """<nada>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.post_json(url, params=data, status=500)
|
||||
assert (BASE_URL,) == mocked_post.call_args[0]
|
||||
|
@ -232,7 +233,7 @@ def test_files(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 200
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><RechercherDossiersResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><LogDossier><timestamp>2015-10-29T15:42:08.732+01:00</timestamp><nom>test</nom><status>Lu</status><annotation></annotation><accessible>KO</accessible></LogDossier><LogDossier><timestamp>2015-10-29T15:52:42.167+01:00</timestamp><nom>Test2</nom><status>RejetSignataire</status><annotation></annotation><accessible>OK</accessible></LogDossier><LogDossier><timestamp>2015-11-25T12:13:30.830+01:00</timestamp><nom>6ceecfb7-67ee-4388-8943-35911c640031</nom><status>NonLu</status><annotation></annotation><accessible>Recuperable</accessible></LogDossier></RechercherDossiersResponse></S:Body></S:Envelope>
|
||||
"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
url = reverse('generic-endpoint', kwargs={'connector': 'iparapheur',
|
||||
'endpoint': 'files', 'slug': conn.slug})
|
||||
|
@ -247,7 +248,7 @@ def test_files(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# same call providing parameter
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><RechercherDossiersResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><LogDossier><timestamp>2015-10-29T15:42:08.732+01:00</timestamp><nom>test</nom><status>Lu</status><annotation></annotation><accessible>KO</accessible></LogDossier></RechercherDossiersResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
url += '&status=Lu'
|
||||
resp = app.get(url)
|
||||
|
@ -266,7 +267,7 @@ def test_get_file_status(mocked_post, mocked_get, app, conn):
|
|||
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><GetHistoDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><LogDossier><timestamp>2016-04-05T17:57:03.893+02:00</timestamp><nom>webservices gru</nom><status>NonLu</status><annotation>Création de dossier</annotation></LogDossier><LogDossier><timestamp>2016-04-05T17:58:46.716+02:00</timestamp><nom>webservices gru</nom><status>NonLu</status><annotation>super</annotation></LogDossier><LogDossier><timestamp>2016-04-05T17:58:46.727+02:00</timestamp><nom>webservices gru</nom><status>Archive</status><annotation>Circuit terminé, dossier archivable</annotation></LogDossier><MessageRetour><codeRetour>OK</codeRetour><message></message><severite>INFO</severite></MessageRetour></GetHistoDossierResponse></S:Body></S:Envelope>
|
||||
"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
url = reverse('generic-endpoint', kwargs={'connector': 'iparapheur',
|
||||
'endpoint': 'get-file-status', 'slug': conn.slug,
|
||||
|
@ -287,7 +288,7 @@ def test_get_file_status(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# KO
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><MessageRetour><codeRetour>KO</codeRetour><message>KOmessage</message><severite>INFO</severite></MessageRetour></CreerDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.get(url, status=500)
|
||||
assert resp.json['err'] == 1
|
||||
|
@ -296,7 +297,7 @@ def test_get_file_status(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# unknown response
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><CreerDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"></CreerDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.get(url, status=500)
|
||||
assert resp.json['err'] == 1
|
||||
|
@ -322,8 +323,8 @@ def test_get_file(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 200
|
||||
|
||||
soap_response = open(os.path.join(os.path.dirname(__file__),
|
||||
'data/iparapheur_get_file_response.xml')).read()
|
||||
response._content = soap_response
|
||||
'data/iparapheur_get_file_response.xml'), 'rb').read()
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
|
||||
url = reverse('generic-endpoint', kwargs={'slug': conn.slug,
|
||||
|
@ -338,7 +339,7 @@ def test_get_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# KO
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><GetDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><MessageRetour><codeRetour>KO</codeRetour><message>KOmessage</message><severite>INFO</severite></MessageRetour></GetDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.get(url, status=500)
|
||||
assert resp.json['err'] == 1
|
||||
|
@ -347,7 +348,7 @@ def test_get_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# unknown response
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><GetDossierResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"></GetDossierResponse></S:Body></S:Envelope>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.get(url, status=500)
|
||||
assert resp.json['err'] == 1
|
||||
|
@ -356,7 +357,7 @@ def test_get_file(mocked_post, mocked_get, app, conn):
|
|||
|
||||
# bad response
|
||||
soap_response = """<nada>"""
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
resp = app.get(url)
|
||||
assert resp.json['err'] == 1
|
||||
|
@ -371,7 +372,7 @@ def test_get_file_invalid_appendix(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 200
|
||||
|
||||
soap_response = open(os.path.join(os.path.dirname(__file__),
|
||||
'data/iparapheur_get_file_response.xml')).read()
|
||||
'data/iparapheur_get_file_response.xml'), 'rb').read()
|
||||
response._content = soap_response
|
||||
mocked_post.return_value = response
|
||||
|
||||
|
@ -391,7 +392,7 @@ def test_get_file_not_found_appendix(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 200
|
||||
|
||||
soap_response = open(os.path.join(os.path.dirname(__file__),
|
||||
'data/iparapheur_get_file_response.xml')).read()
|
||||
'data/iparapheur_get_file_response.xml'), 'rb').read()
|
||||
response._content = soap_response
|
||||
mocked_post.return_value = response
|
||||
|
||||
|
@ -411,7 +412,7 @@ def test_get_file_appendix(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 200
|
||||
|
||||
soap_response = open(os.path.join(os.path.dirname(__file__),
|
||||
'data/iparapheur_get_file_response.xml')).read()
|
||||
'data/iparapheur_get_file_response.xml'), 'rb').read()
|
||||
response._content = soap_response
|
||||
mocked_post.return_value = response
|
||||
|
||||
|
@ -433,7 +434,7 @@ def test_invalid_response(mocked_post, mocked_get, app, conn):
|
|||
response.status_code = 502
|
||||
|
||||
soap_response = open(os.path.join(os.path.dirname(__file__),
|
||||
'data/iparapheur_get_file_response.xml')).read()
|
||||
'data/iparapheur_get_file_response.xml'), 'rb').read()
|
||||
response._content = '<p>Bad Gateway</p>'
|
||||
response.raison = 'Bad Gateway'
|
||||
mocked_post.return_value = response
|
||||
|
@ -465,7 +466,7 @@ def test_webfault_response(mocked_post, mocked_get, app, conn):
|
|||
</SOAP-ENV:Fault>
|
||||
</SOAP-ENV:Body>
|
||||
</SOAP-ENV:Envelope>"""
|
||||
response._content = webfault_response
|
||||
response._content = force_bytes(webfault_response)
|
||||
mocked_post.return_value = response
|
||||
|
||||
resp = app.get(url)
|
||||
|
@ -481,7 +482,7 @@ def test_call_wsdl(mocked_get, app, conn):
|
|||
'connector': 'iparapheur', 'endpoint': 'wsdl'})
|
||||
resp = app.get(url)
|
||||
assert resp.headers['content-type'] == 'text/xml'
|
||||
assert resp.content == open(wsdl_file()).read()
|
||||
assert resp.content == open(wsdl_file(), 'rb').read()
|
||||
|
||||
@mock.patch('passerelle.utils.Request.get', side_effect=ConnectionError('mocked error'))
|
||||
def test_call_wsdl_connectionerror(mocked_get, app, conn):
|
||||
|
@ -505,10 +506,10 @@ def test_no_auth_on_wsdl_imports(mocked_post, mocked_load, mocked_get, app, conn
|
|||
"""
|
||||
response_xmlmime, response_post = Response(), Response()
|
||||
response_xmlmime.status_code, response_post.status_code = 200, 200
|
||||
response_xmlmime._content=file(xmlmime()).read()
|
||||
response_post._content = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><echoResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime">[publik_test] m'a dit: "ping"!</echoResponse></S:Body></S:Envelope>
|
||||
"""
|
||||
mocked_load.return_value = open(wsdl_file()).read()
|
||||
response_xmlmime._content = open(xmlmime(), 'rb').read()
|
||||
response_post._content = force_bytes("""<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><echoResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime">[publik_test] m'a dit: "ping"!</echoResponse></S:Body></S:Envelope>
|
||||
""")
|
||||
mocked_load.return_value = open(wsdl_file(), 'rb').read()
|
||||
mocked_get.return_value = response_xmlmime
|
||||
mocked_post.return_value = response_post
|
||||
url = reverse('generic-endpoint', kwargs={'connector': 'iparapheur',
|
||||
|
@ -530,7 +531,7 @@ def test_types(mocked_post, mocked_get, app, conn):
|
|||
# empty list of types as response
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><GetListeTypesResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"/></S:Body></S:Envelope>"""
|
||||
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
url = reverse('generic-endpoint', kwargs={'slug': conn.slug, 'connector': 'iparapheur',
|
||||
'endpoint': 'types'})
|
||||
|
@ -558,7 +559,7 @@ def test_subtypes(mocked_post, mocked_get, app, conn):
|
|||
# providing a type as parameter
|
||||
soap_response = """<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><GetListeTypesResponse xmlns="http://www.adullact.org/spring-ws/iparapheur/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"/></S:Body></S:Envelope>"""
|
||||
|
||||
response._content = soap_response # empty list of subtypes as response
|
||||
response._content = force_bytes(soap_response) # empty list of subtypes as response
|
||||
mocked_post.return_value = response
|
||||
url += '&type=my_unknown_type'
|
||||
resp = app.get(url)
|
||||
|
@ -571,7 +572,7 @@ def test_call_ping_overrinding_endpoint_url(mocked_post, mocked_get, app, conn):
|
|||
response = Response()
|
||||
response.status_code = 200
|
||||
soap_response = 'no importance'
|
||||
response._content = soap_response
|
||||
response._content = force_bytes(soap_response)
|
||||
mocked_post.return_value = response
|
||||
|
||||
conn.wsdl_endpoint_location = 'http://www.new.location.com'
|
||||
|
|
Loading…
Reference in New Issue