Projet

Général

Profil

0001-dpark-pass-file-s-raw-content-to-zeep-26417.patch

Josué Kouka, 14 septembre 2018 18:32

Télécharger (35,4 ko)

Voir les différences:

Subject: [PATCH] dpark: pass file's raw content to zeep (#26417)

 passerelle/contrib/dpark/models.py |   5 +-
 tests/data/dpark.awws.wsdl         | 604 +++++++++++++++++++++++++++++
 tests/test_dpark.py                |  42 +-
 3 files changed, 647 insertions(+), 4 deletions(-)
 create mode 100644 tests/data/dpark.awws.wsdl
passerelle/contrib/dpark/models.py
14 14
# You should have received a copy of the GNU Affero General Public License
15 15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import base64
17 18
import json
18 19

  
19 20
from django.conf import settings
......
399 400
                errors.extend(value_errors)
400 401
                continue
401 402

  
403
            # Use raw content as zeep encode the content in base64
404
            file_raw_content = base64.b64decode(value['content'])
402 405
            attached_files.append({
403
                'TypeDocument': doc_id, 'NomFichier': value['filename'], 'Fichier': value['content']})
406
                'TypeDocument': doc_id, 'NomFichier': value['filename'], 'Fichier': file_raw_content})
404 407
        # deduce the number of files
405 408
        if errors:
406 409
            raise APIError(errors)
tests/data/dpark.awws.wsdl
1
<?xml version="1.0" encoding="UTF-8"?>
2
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s0="urn:Webservice_Residants" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:Webservice_Residants">
3
  <types>
4
    <xsd:schema elementFormDefault="unqualified" targetNamespace="urn:Webservice_Residants">
5
      <xsd:simpleType name="WLChar">
6
        <xsd:restriction base="xsd:string">
7
          <xsd:length value="1" fixed="true"/>
8
        </xsd:restriction>
9
      </xsd:simpleType>
10
      <xsd:complexType name="tidTagInfo" s0:nomcomplet="ProceduresGlobales.idTagInfo">
11
        <xsd:sequence>
12
          <xsd:element name="status" type="xsd:string"/>
13
          <xsd:element name="ExpiryDate" type="xsd:date"/>
14
        </xsd:sequence>
15
      </xsd:complexType>
16
      <xsd:element name="idTagInfo" type="s0:tidTagInfo"/>
17
      <xsd:complexType name="tRetour_PLS" s0:nomcomplet="ProceduresGlobales.Retour_PLS">
18
        <xsd:sequence>
19
          <xsd:element name="CodeRetour" type="xsd:string"/>
20
          <xsd:element name="MessageRetour" type="xsd:string"/>
21
        </xsd:sequence>
22
      </xsd:complexType>
23
      <xsd:element name="Retour_PLS" type="s0:tRetour_PLS"/>
24
      <xsd:complexType name="tRetour_FPS_Infos" s0:nomcomplet="ProceduresGlobales.Retour_FPS_Infos">
25
        <xsd:sequence>
26
          <xsd:element name="Support_Immatriculation" type="xsd:string"/>
27
          <xsd:element name="Support_DateDebutAbo" type="xsd:string"/>
28
          <xsd:element name="Support_DateFinAbo" type="xsd:string"/>
29
          <xsd:element name="Dossier_Type" type="xsd:string"/>
30
          <xsd:element name="Demande_Nom" type="xsd:string"/>
31
          <xsd:element name="Demande_Prenom" type="xsd:string"/>
32
          <xsd:element name="Demande_Contexte" type="xsd:string"/>
33
          <xsd:element name="Demande_Cas" type="xsd:string"/>
34
          <xsd:element name="Demande_Quartier" type="xsd:string"/>
35
        </xsd:sequence>
36
      </xsd:complexType>
37
      <xsd:element name="Retour_FPS_Infos" type="s0:tRetour_FPS_Infos"/>
38
      <xsd:complexType name="tRetour_FPS" s0:nomcomplet="ProceduresGlobales.Retour_FPS">
39
        <xsd:sequence>
40
          <xsd:element name="Code_Retour" type="xsd:int"/>
41
          <xsd:element name="Lib_Retour" type="xsd:string"/>
42
          <xsd:element name="Infos" type="s0:tRetour_FPS_Infos" maxOccurs="unbounded"/>
43
        </xsd:sequence>
44
      </xsd:complexType>
45
      <xsd:element name="Retour_FPS" type="s0:tRetour_FPS"/>
46
      <xsd:complexType name="tRetour_PLS_ENREG" s0:nomcomplet="ProceduresGlobales.Retour_PLS_ENREG">
47
        <xsd:sequence>
48
          <xsd:element name="CodeRetour" type="xsd:string"/>
49
          <xsd:element name="MessageRetour" type="xsd:string"/>
50
          <xsd:element name="NumeroDossier" type="xsd:int"/>
51
          <xsd:element name="NumeroDemande" type="xsd:int"/>
52
        </xsd:sequence>
53
      </xsd:complexType>
54
      <xsd:element name="Retour_PLS_ENREG" type="s0:tRetour_PLS_ENREG"/>
55
      <xsd:complexType name="tRetour_PLS_RECUPAIEM" s0:nomcomplet="ProceduresGlobales.Retour_PLS_RECUPAIEM">
56
        <xsd:sequence>
57
          <xsd:element name="CodeRetour" type="xsd:string"/>
58
          <xsd:element name="MessageRetour" type="xsd:string"/>
59
          <xsd:element name="NumeroDemande" type="xsd:int"/>
60
          <xsd:element name="NumeroTeledossierPhase1" type="xsd:string"/>
61
          <xsd:element name="Montant" type="xsd:int"/>
62
          <xsd:element name="TypePaiement" type="xsd:int"/>
63
        </xsd:sequence>
64
      </xsd:complexType>
65
      <xsd:element name="Retour_PLS_RECUPAIEM" type="s0:tRetour_PLS_RECUPAIEM"/>
66
      <xsd:complexType name="tRetour_PLS_RECUPD" s0:nomcomplet="ProceduresGlobales.Retour_PLS_RECUPD">
67
        <xsd:sequence>
68
          <xsd:element name="CodeRetour" type="xsd:string"/>
69
          <xsd:element name="MessageRetour" type="xsd:string"/>
70
          <xsd:element name="Demandeur_Civilite" type="xsd:int"/>
71
          <xsd:element name="Demandeur_NomUsuel" type="xsd:string"/>
72
          <xsd:element name="Demandeur_Prenom" type="xsd:string"/>
73
          <xsd:element name="Demandeur_TelephoneFixe" type="xsd:string"/>
74
          <xsd:element name="Demandeur_TelephonePortable" type="xsd:string"/>
75
          <xsd:element name="Demandeur_Email" type="xsd:string"/>
76
          <xsd:element name="Adresse_EtageEscalierAppartement" type="xsd:string"/>
77
          <xsd:element name="Adresse_ImmeubleBatimentResidence" type="xsd:string"/>
78
          <xsd:element name="Adresse_NumeroVoie" type="xsd:int"/>
79
          <xsd:element name="Adresse_Extension" type="xsd:int"/>
80
          <xsd:element name="Adresse_NomVoie" type="xsd:string"/>
81
          <xsd:element name="Adresse_CodeSTI" type="xsd:string"/>
82
          <xsd:element name="Adresse_BoitePostaleLieudit" type="xsd:string"/>
83
          <xsd:element name="Adresse_CodePostal" type="xsd:string"/>
84
          <xsd:element name="Adresse_Localite" type="xsd:string"/>
85
          <xsd:element name="Adresse_Quartier" type="xsd:string"/>
86
          <xsd:element name="Demande_NumeroDossier" type="xsd:int"/>
87
          <xsd:element name="Demande_ImmatVehicule1" type="xsd:string"/>
88
          <xsd:element name="Demande_ModeleVehicule1" type="xsd:string"/>
89
          <xsd:element name="Demande_MarqueVehicule1" type="xsd:string"/>
90
          <xsd:element name="Demande_ImmatVehicule2" type="xsd:string"/>
91
          <xsd:element name="Demande_ModeleVehicule2" type="xsd:string"/>
92
          <xsd:element name="Demande_MarqueVehicule2" type="xsd:string"/>
93
          <xsd:element name="Demande_DateDebutAbo" type="xsd:string"/>
94
          <xsd:element name="Demande_DateFinAbo" type="xsd:string"/>
95
          <xsd:element name="Demande_DelaiAutorise" type="xsd:int"/>
96
        </xsd:sequence>
97
      </xsd:complexType>
98
      <xsd:element name="Retour_PLS_RECUPD" type="s0:tRetour_PLS_RECUPD"/>
99
      <xsd:complexType name="tRetour_PLS_ELIGADR" s0:nomcomplet="ProceduresGlobales.Retour_PLS_ELIGADR">
100
        <xsd:sequence>
101
          <xsd:element name="CodeRetour" type="xsd:string"/>
102
          <xsd:element name="MessageRetour" type="xsd:string"/>
103
          <xsd:element name="Adresse_EtageEscalierAppartement" type="xsd:string"/>
104
          <xsd:element name="Adresse_ImmeubleBatimentResidence" type="xsd:string"/>
105
          <xsd:element name="Adresse_NumeroVoie" type="xsd:int"/>
106
          <xsd:element name="Adresse_Extension" type="xsd:int"/>
107
          <xsd:element name="Adresse_NomVoie" type="xsd:string"/>
108
          <xsd:element name="Adresse_CodeSTI" type="xsd:string"/>
109
          <xsd:element name="Adresse_BoitePostaleLieudit" type="xsd:string"/>
110
          <xsd:element name="Adresse_CodePostal" type="xsd:string"/>
111
          <xsd:element name="Adresse_Localite" type="xsd:string"/>
112
          <xsd:element name="Adresse_Quartier" type="xsd:string"/>
113
        </xsd:sequence>
114
      </xsd:complexType>
115
      <xsd:element name="Retour_PLS_ELIGADR" type="s0:tRetour_PLS_ELIGADR"/>
116
      <xsd:complexType name="tEntree_PLS_ELIGADR" s0:nomcomplet="ProceduresGlobales.Entree_PLS_ELIGADR">
117
        <xsd:sequence>
118
          <xsd:element name="Adresse_EtageEscalierAppartement" type="xsd:string"/>
119
          <xsd:element name="Adresse_ImmeubleBatimentResidence" type="xsd:string"/>
120
          <xsd:element name="Adresse_NumeroVoie" type="xsd:int"/>
121
          <xsd:element name="Adresse_Extension" type="xsd:int"/>
122
          <xsd:element name="Adresse_NomVoie" type="xsd:string"/>
123
          <xsd:element name="Adresse_CodeSTI" type="xsd:string"/>
124
          <xsd:element name="Adresse_BoitePostaleLieudit" type="xsd:string"/>
125
          <xsd:element name="Adresse_CodePostal" type="xsd:string"/>
126
          <xsd:element name="Adresse_Localite" type="xsd:string"/>
127
        </xsd:sequence>
128
      </xsd:complexType>
129
      <xsd:element name="Entree_PLS_ELIGADR" type="s0:tEntree_PLS_ELIGADR"/>
130
      <xsd:complexType name="tEntree_Demandeur_PLS_ENREG" s0:nomcomplet="ProceduresGlobales.Entree_Demandeur_PLS_ENREG">
131
        <xsd:sequence>
132
          <xsd:element name="Demandeur_Civilite" type="xsd:int"/>
133
          <xsd:element name="Demandeur_NomUsuel" type="xsd:string"/>
134
          <xsd:element name="Demandeur_Prenom" type="xsd:string"/>
135
          <xsd:element name="Demandeur_TelephoneFixe" type="xsd:string"/>
136
          <xsd:element name="Demandeur_TelephonePortable" type="xsd:string"/>
137
          <xsd:element name="Demandeur_Email" type="xsd:string"/>
138
        </xsd:sequence>
139
      </xsd:complexType>
140
      <xsd:element name="Entree_Demandeur_PLS_ENREG" type="s0:tEntree_Demandeur_PLS_ENREG"/>
141
      <xsd:complexType name="tEntree_Demande_PLS_ENREG" s0:nomcomplet="ProceduresGlobales.Entree_Demande_PLS_ENREG">
142
        <xsd:sequence>
143
          <xsd:element name="Demande_NumeroDossier" type="xsd:int"/>
144
          <xsd:element name="Demande_TypeDemande" type="xsd:int"/>
145
          <xsd:element name="Demande_Renouvellement" type="xsd:int"/>
146
          <xsd:element name="Demande_ImmatVehicule1" type="xsd:string"/>
147
          <xsd:element name="Demande_ModeleVehicule1" type="xsd:string"/>
148
          <xsd:element name="Demande_MarqueVehicule1" type="xsd:string"/>
149
          <xsd:element name="Demande_ImmatVehicule2" type="xsd:string"/>
150
          <xsd:element name="Demande_ModeleVehicule2" type="xsd:string"/>
151
          <xsd:element name="Demande_MarqueVehicule2" type="xsd:string"/>
152
          <xsd:element name="Demande_CasDerogatoire_Vehicule1" type="xsd:int"/>
153
          <xsd:element name="Demande_CasDerogatoire_Vehicule2" type="xsd:int"/>
154
          <xsd:element name="Demande_AbonnementTiers" type="xsd:boolean"/>
155
          <xsd:element name="Demande_TypePaiement" type="xsd:int"/>
156
          <xsd:element name="Demande_IBAN" type="xsd:string"/>
157
          <xsd:element name="Demande_BIC" type="xsd:string"/>
158
        </xsd:sequence>
159
      </xsd:complexType>
160
      <xsd:element name="Entree_Demande_PLS_ENREG" type="s0:tEntree_Demande_PLS_ENREG"/>
161
      <xsd:complexType name="tEntree_Adresse" s0:nomcomplet="ProceduresGlobales.Entree_Adresse">
162
        <xsd:sequence>
163
          <xsd:element name="Adresse_EtageEscalierAppartement" type="xsd:string"/>
164
          <xsd:element name="Adresse_ImmeubleBatimentResidence" type="xsd:string"/>
165
          <xsd:element name="Adresse_NumeroVoie" type="xsd:int"/>
166
          <xsd:element name="Adresse_Extension" type="xsd:int"/>
167
          <xsd:element name="Adresse_NomVoie" type="xsd:string"/>
168
          <xsd:element name="Adresse_CodeSTI" type="xsd:string"/>
169
          <xsd:element name="Adresse_BoitePostaleLieudit" type="xsd:string"/>
170
          <xsd:element name="Adresse_CodePostal" type="xsd:string"/>
171
          <xsd:element name="Adresse_Localite" type="xsd:string"/>
172
          <xsd:element name="Adresse_Quartier" type="xsd:string"/>
173
        </xsd:sequence>
174
      </xsd:complexType>
175
      <xsd:element name="Entree_Adresse" type="s0:tEntree_Adresse"/>
176
      <xsd:complexType name="tEntree_PLS_ENVOIPJ" s0:nomcomplet="ProceduresGlobales.Entree_PLS_ENVOIPJ">
177
        <xsd:sequence>
178
          <xsd:element name="TypeDocument" type="xsd:string"/>
179
          <xsd:element name="NomFichier" type="xsd:string"/>
180
          <xsd:element name="Fichier" type="xsd:base64Binary"/>
181
        </xsd:sequence>
182
      </xsd:complexType>
183
      <xsd:element name="Entree_PLS_ENVOIPJ" type="s0:tEntree_PLS_ENVOIPJ"/>
184
      <xsd:complexType name="tPLS_EXIST">
185
        <xsd:sequence>
186
          <xsd:element name="Nom" type="xsd:string"/>
187
          <xsd:element name="Prenom" type="xsd:string"/>
188
          <xsd:element name="NumeroDossier" type="xsd:int"/>
189
          <xsd:element name="NumeroBadge" type="xsd:int"/>
190
          <xsd:element name="NumeroCarte" type="xsd:int"/>
191
        </xsd:sequence>
192
      </xsd:complexType>
193
      <xsd:element name="PLS_EXIST" type="s0:tPLS_EXIST"/>
194
      <xsd:complexType name="tPLS_EXISTResponse">
195
        <xsd:sequence>
196
          <xsd:element name="PLS_EXISTResult" type="s0:tRetour_PLS"/>
197
        </xsd:sequence>
198
      </xsd:complexType>
199
      <xsd:element name="PLS_EXISTResponse" type="s0:tPLS_EXISTResponse"/>
200
      <xsd:complexType name="tPLS_CTRLDOUBLRENOUV">
201
        <xsd:sequence>
202
          <xsd:element name="Nom" type="xsd:string"/>
203
          <xsd:element name="Prenom" type="xsd:string"/>
204
          <xsd:element name="NumeroDossier" type="xsd:int"/>
205
          <xsd:element name="NumeroBadge" type="xsd:int"/>
206
          <xsd:element name="NumeroCarte" type="xsd:int"/>
207
        </xsd:sequence>
208
      </xsd:complexType>
209
      <xsd:element name="PLS_CTRLDOUBLRENOUV" type="s0:tPLS_CTRLDOUBLRENOUV"/>
210
      <xsd:complexType name="tPLS_CTRLDOUBLRENOUVResponse">
211
        <xsd:sequence>
212
          <xsd:element name="PLS_CTRLDOUBLRENOUVResult" type="s0:tRetour_PLS"/>
213
        </xsd:sequence>
214
      </xsd:complexType>
215
      <xsd:element name="PLS_CTRLDOUBLRENOUVResponse" type="s0:tPLS_CTRLDOUBLRENOUVResponse"/>
216
      <xsd:complexType name="tPLS_CTRLDELAIS">
217
        <xsd:sequence>
218
          <xsd:element name="Nom" type="xsd:string"/>
219
          <xsd:element name="Prenom" type="xsd:string"/>
220
          <xsd:element name="NumeroDossier" type="xsd:int"/>
221
          <xsd:element name="NumeroBadge" type="xsd:int"/>
222
          <xsd:element name="NumeroCarte" type="xsd:int"/>
223
        </xsd:sequence>
224
      </xsd:complexType>
225
      <xsd:element name="PLS_CTRLDELAIS" type="s0:tPLS_CTRLDELAIS"/>
226
      <xsd:complexType name="tPLS_CTRLDELAISResponse">
227
        <xsd:sequence>
228
          <xsd:element name="PLS_CTRLDELAISResult" type="s0:tRetour_PLS"/>
229
        </xsd:sequence>
230
      </xsd:complexType>
231
      <xsd:element name="PLS_CTRLDELAISResponse" type="s0:tPLS_CTRLDELAISResponse"/>
232
      <xsd:complexType name="tPLS_RECUPD">
233
        <xsd:sequence>
234
          <xsd:element name="Nom" type="xsd:string"/>
235
          <xsd:element name="Prenom" type="xsd:string"/>
236
          <xsd:element name="NumeroDossier" type="xsd:int"/>
237
          <xsd:element name="NumeroBadge" type="xsd:int"/>
238
          <xsd:element name="NumeroCarte" type="xsd:int"/>
239
        </xsd:sequence>
240
      </xsd:complexType>
241
      <xsd:element name="PLS_RECUPD" type="s0:tPLS_RECUPD"/>
242
      <xsd:complexType name="tPLS_RECUPDResponse">
243
        <xsd:sequence>
244
          <xsd:element name="PLS_RECUPDResult" type="s0:tRetour_PLS_RECUPD"/>
245
        </xsd:sequence>
246
      </xsd:complexType>
247
      <xsd:element name="PLS_RECUPDResponse" type="s0:tPLS_RECUPDResponse"/>
248
      <xsd:complexType name="tPLS_ELIGADR">
249
        <xsd:sequence>
250
          <xsd:element name="Adresse" type="s0:tEntree_PLS_ELIGADR"/>
251
        </xsd:sequence>
252
      </xsd:complexType>
253
      <xsd:element name="PLS_ELIGADR" type="s0:tPLS_ELIGADR"/>
254
      <xsd:complexType name="tPLS_ELIGADRResponse">
255
        <xsd:sequence>
256
          <xsd:element name="PLS_ELIGADRResult" type="s0:tRetour_PLS_ELIGADR"/>
257
        </xsd:sequence>
258
      </xsd:complexType>
259
      <xsd:element name="PLS_ELIGADRResponse" type="s0:tPLS_ELIGADRResponse"/>
260
      <xsd:complexType name="tPLS_ENREG">
261
        <xsd:sequence>
262
          <xsd:element name="NumeroTeledossier" type="xsd:string"/>
263
          <xsd:element name="Entree_Demandeur" type="s0:tEntree_Demandeur_PLS_ENREG"/>
264
          <xsd:element name="Entree_Adresse" type="s0:tEntree_Adresse"/>
265
          <xsd:element name="Entree_Demande" type="s0:tEntree_Demande_PLS_ENREG"/>
266
        </xsd:sequence>
267
      </xsd:complexType>
268
      <xsd:element name="PLS_ENREG" type="s0:tPLS_ENREG"/>
269
      <xsd:complexType name="tPLS_ENREGResponse">
270
        <xsd:sequence>
271
          <xsd:element name="PLS_ENREGResult" type="s0:tRetour_PLS_ENREG"/>
272
        </xsd:sequence>
273
      </xsd:complexType>
274
      <xsd:element name="PLS_ENREGResponse" type="s0:tPLS_ENREGResponse"/>
275
      <xsd:complexType name="tPLS_CTRLDOUBLCREA">
276
        <xsd:sequence>
277
          <xsd:element name="Nom" type="xsd:string"/>
278
          <xsd:element name="Prenom" type="xsd:string"/>
279
          <xsd:element name="Adresse" type="s0:tEntree_Adresse"/>
280
        </xsd:sequence>
281
      </xsd:complexType>
282
      <xsd:element name="PLS_CTRLDOUBLCREA" type="s0:tPLS_CTRLDOUBLCREA"/>
283
      <xsd:complexType name="tPLS_CTRLDOUBLCREAResponse">
284
        <xsd:sequence>
285
          <xsd:element name="PLS_CTRLDOUBLCREAResult" type="s0:tRetour_PLS"/>
286
        </xsd:sequence>
287
      </xsd:complexType>
288
      <xsd:element name="PLS_CTRLDOUBLCREAResponse" type="s0:tPLS_CTRLDOUBLCREAResponse"/>
289
      <xsd:complexType name="tPLS_CTRLUSAGERCONNUCREA">
290
        <xsd:sequence>
291
          <xsd:element name="Nom" type="xsd:string"/>
292
          <xsd:element name="Prenom" type="xsd:string"/>
293
          <xsd:element name="Adresse" type="s0:tEntree_Adresse"/>
294
        </xsd:sequence>
295
      </xsd:complexType>
296
      <xsd:element name="PLS_CTRLUSAGERCONNUCREA" type="s0:tPLS_CTRLUSAGERCONNUCREA"/>
297
      <xsd:complexType name="tPLS_CTRLUSAGERCONNUCREAResponse">
298
        <xsd:sequence>
299
          <xsd:element name="PLS_CTRLUSAGERCONNUCREAResult" type="s0:tRetour_PLS"/>
300
        </xsd:sequence>
301
      </xsd:complexType>
302
      <xsd:element name="PLS_CTRLUSAGERCONNUCREAResponse" type="s0:tPLS_CTRLUSAGERCONNUCREAResponse"/>
303
      <xsd:complexType name="tPLS_RECUPAIEM">
304
        <xsd:sequence>
305
          <xsd:element name="NumeroDossier" type="xsd:int"/>
306
          <xsd:element name="Nom" type="xsd:string"/>
307
          <xsd:element name="Prenom" type="xsd:string"/>
308
        </xsd:sequence>
309
      </xsd:complexType>
310
      <xsd:element name="PLS_RECUPAIEM" type="s0:tPLS_RECUPAIEM"/>
311
      <xsd:complexType name="tPLS_RECUPAIEMResponse">
312
        <xsd:sequence>
313
          <xsd:element name="PLS_RECUPAIEMResult" type="s0:tRetour_PLS_RECUPAIEM"/>
314
        </xsd:sequence>
315
      </xsd:complexType>
316
      <xsd:element name="PLS_RECUPAIEMResponse" type="s0:tPLS_RECUPAIEMResponse"/>
317
      <xsd:complexType name="tPLS_NOTIFCB">
318
        <xsd:sequence>
319
          <xsd:element name="NumeroTeledossierPhase1" type="xsd:string"/>
320
          <xsd:element name="NumeroDossier" type="xsd:int"/>
321
          <xsd:element name="NumeroDemande" type="xsd:int"/>
322
          <xsd:element name="TypePaiement" type="xsd:int"/>
323
          <xsd:element name="MontantPaye" type="xsd:int"/>
324
          <xsd:element name="DatePaiement" type="xsd:string"/>
325
          <xsd:element name="RefTransaction" type="xsd:string"/>
326
        </xsd:sequence>
327
      </xsd:complexType>
328
      <xsd:element name="PLS_NOTIFCB" type="s0:tPLS_NOTIFCB"/>
329
      <xsd:complexType name="tPLS_NOTIFCBResponse">
330
        <xsd:sequence>
331
          <xsd:element name="PLS_NOTIFCBResult" type="s0:tRetour_PLS"/>
332
        </xsd:sequence>
333
      </xsd:complexType>
334
      <xsd:element name="PLS_NOTIFCBResponse" type="s0:tPLS_NOTIFCBResponse"/>
335
      <xsd:complexType name="tPLS_ENVOIPJ">
336
        <xsd:sequence>
337
          <xsd:element name="NumeroTeledossier" type="xsd:string"/>
338
          <xsd:element name="NumeroDossier" type="xsd:int"/>
339
          <xsd:element name="NbFichier" type="xsd:int"/>
340
          <xsd:element name="Bloc_Fichiers" type="s0:tEntree_PLS_ENVOIPJ" maxOccurs="unbounded"/>
341
        </xsd:sequence>
342
      </xsd:complexType>
343
      <xsd:element name="PLS_ENVOIPJ" type="s0:tPLS_ENVOIPJ"/>
344
      <xsd:complexType name="tPLS_ENVOIPJResponse">
345
        <xsd:sequence>
346
          <xsd:element name="PLS_ENVOIPJResult" type="s0:tRetour_PLS"/>
347
        </xsd:sequence>
348
      </xsd:complexType>
349
      <xsd:element name="PLS_ENVOIPJResponse" type="s0:tPLS_ENVOIPJResponse"/>
350
      <xsd:complexType name="tFPS_Rech_Immat">
351
        <xsd:sequence>
352
          <xsd:element name="Immatriculation" type="xsd:string"/>
353
          <xsd:element name="Date" type="xsd:string"/>
354
        </xsd:sequence>
355
      </xsd:complexType>
356
      <xsd:element name="FPS_Rech_Immat" type="s0:tFPS_Rech_Immat"/>
357
      <xsd:complexType name="tFPS_Rech_ImmatResponse">
358
        <xsd:sequence>
359
          <xsd:element name="FPS_Rech_ImmatResult" type="s0:tRetour_FPS"/>
360
        </xsd:sequence>
361
      </xsd:complexType>
362
      <xsd:element name="FPS_Rech_ImmatResponse" type="s0:tFPS_Rech_ImmatResponse"/>
363
    </xsd:schema>
364
  </types>
365
  <message name="Webservice_Residants_PLS_EXIST_MessageIn">
366
    <part name="parameters" element="s0:PLS_EXIST"/>
367
  </message>
368
  <message name="Webservice_Residants_PLS_EXIST_MessageOut">
369
    <part name="parameters" element="s0:PLS_EXISTResponse"/>
370
  </message>
371
  <message name="Webservice_Residants_PLS_CTRLDOUBLRENOUV_MessageIn">
372
    <part name="parameters" element="s0:PLS_CTRLDOUBLRENOUV"/>
373
  </message>
374
  <message name="Webservice_Residants_PLS_CTRLDOUBLRENOUV_MessageOut">
375
    <part name="parameters" element="s0:PLS_CTRLDOUBLRENOUVResponse"/>
376
  </message>
377
  <message name="Webservice_Residants_PLS_CTRLDELAIS_MessageIn">
378
    <part name="parameters" element="s0:PLS_CTRLDELAIS"/>
379
  </message>
380
  <message name="Webservice_Residants_PLS_CTRLDELAIS_MessageOut">
381
    <part name="parameters" element="s0:PLS_CTRLDELAISResponse"/>
382
  </message>
383
  <message name="Webservice_Residants_PLS_RECUPD_MessageIn">
384
    <part name="parameters" element="s0:PLS_RECUPD"/>
385
  </message>
386
  <message name="Webservice_Residants_PLS_RECUPD_MessageOut">
387
    <part name="parameters" element="s0:PLS_RECUPDResponse"/>
388
  </message>
389
  <message name="Webservice_Residants_PLS_ELIGADR_MessageIn">
390
    <part name="parameters" element="s0:PLS_ELIGADR"/>
391
  </message>
392
  <message name="Webservice_Residants_PLS_ELIGADR_MessageOut">
393
    <part name="parameters" element="s0:PLS_ELIGADRResponse"/>
394
  </message>
395
  <message name="Webservice_Residants_PLS_ENREG_MessageIn">
396
    <part name="parameters" element="s0:PLS_ENREG"/>
397
  </message>
398
  <message name="Webservice_Residants_PLS_ENREG_MessageOut">
399
    <part name="parameters" element="s0:PLS_ENREGResponse"/>
400
  </message>
401
  <message name="Webservice_Residants_PLS_CTRLDOUBLCREA_MessageIn">
402
    <part name="parameters" element="s0:PLS_CTRLDOUBLCREA"/>
403
  </message>
404
  <message name="Webservice_Residants_PLS_CTRLDOUBLCREA_MessageOut">
405
    <part name="parameters" element="s0:PLS_CTRLDOUBLCREAResponse"/>
406
  </message>
407
  <message name="Webservice_Residants_PLS_CTRLUSAGERCONNUCREA_MessageIn">
408
    <part name="parameters" element="s0:PLS_CTRLUSAGERCONNUCREA"/>
409
  </message>
410
  <message name="Webservice_Residants_PLS_CTRLUSAGERCONNUCREA_MessageOut">
411
    <part name="parameters" element="s0:PLS_CTRLUSAGERCONNUCREAResponse"/>
412
  </message>
413
  <message name="Webservice_Residants_PLS_RECUPAIEM_MessageIn">
414
    <part name="parameters" element="s0:PLS_RECUPAIEM"/>
415
  </message>
416
  <message name="Webservice_Residants_PLS_RECUPAIEM_MessageOut">
417
    <part name="parameters" element="s0:PLS_RECUPAIEMResponse"/>
418
  </message>
419
  <message name="Webservice_Residants_PLS_NOTIFCB_MessageIn">
420
    <part name="parameters" element="s0:PLS_NOTIFCB"/>
421
  </message>
422
  <message name="Webservice_Residants_PLS_NOTIFCB_MessageOut">
423
    <part name="parameters" element="s0:PLS_NOTIFCBResponse"/>
424
  </message>
425
  <message name="Webservice_Residants_PLS_ENVOIPJ_MessageIn">
426
    <part name="parameters" element="s0:PLS_ENVOIPJ"/>
427
  </message>
428
  <message name="Webservice_Residants_PLS_ENVOIPJ_MessageOut">
429
    <part name="parameters" element="s0:PLS_ENVOIPJResponse"/>
430
  </message>
431
  <message name="Webservice_Residants_FPS_Rech_Immat_MessageIn">
432
    <part name="parameters" element="s0:FPS_Rech_Immat"/>
433
  </message>
434
  <message name="Webservice_Residants_FPS_Rech_Immat_MessageOut">
435
    <part name="parameters" element="s0:FPS_Rech_ImmatResponse"/>
436
  </message>
437
  <portType name="Webservice_ResidantsSOAPPortType">
438
    <operation name="PLS_EXIST">
439
      <input message="s0:Webservice_Residants_PLS_EXIST_MessageIn"/>
440
      <output message="s0:Webservice_Residants_PLS_EXIST_MessageOut"/>
441
    </operation>
442
    <operation name="PLS_CTRLDOUBLRENOUV">
443
      <input message="s0:Webservice_Residants_PLS_CTRLDOUBLRENOUV_MessageIn"/>
444
      <output message="s0:Webservice_Residants_PLS_CTRLDOUBLRENOUV_MessageOut"/>
445
    </operation>
446
    <operation name="PLS_CTRLDELAIS">
447
      <input message="s0:Webservice_Residants_PLS_CTRLDELAIS_MessageIn"/>
448
      <output message="s0:Webservice_Residants_PLS_CTRLDELAIS_MessageOut"/>
449
    </operation>
450
    <operation name="PLS_RECUPD">
451
      <input message="s0:Webservice_Residants_PLS_RECUPD_MessageIn"/>
452
      <output message="s0:Webservice_Residants_PLS_RECUPD_MessageOut"/>
453
    </operation>
454
    <operation name="PLS_ELIGADR">
455
      <input message="s0:Webservice_Residants_PLS_ELIGADR_MessageIn"/>
456
      <output message="s0:Webservice_Residants_PLS_ELIGADR_MessageOut"/>
457
    </operation>
458
    <operation name="PLS_ENREG">
459
      <input message="s0:Webservice_Residants_PLS_ENREG_MessageIn"/>
460
      <output message="s0:Webservice_Residants_PLS_ENREG_MessageOut"/>
461
    </operation>
462
    <operation name="PLS_CTRLDOUBLCREA">
463
      <input message="s0:Webservice_Residants_PLS_CTRLDOUBLCREA_MessageIn"/>
464
      <output message="s0:Webservice_Residants_PLS_CTRLDOUBLCREA_MessageOut"/>
465
    </operation>
466
    <operation name="PLS_CTRLUSAGERCONNUCREA">
467
      <input message="s0:Webservice_Residants_PLS_CTRLUSAGERCONNUCREA_MessageIn"/>
468
      <output message="s0:Webservice_Residants_PLS_CTRLUSAGERCONNUCREA_MessageOut"/>
469
    </operation>
470
    <operation name="PLS_RECUPAIEM">
471
      <input message="s0:Webservice_Residants_PLS_RECUPAIEM_MessageIn"/>
472
      <output message="s0:Webservice_Residants_PLS_RECUPAIEM_MessageOut"/>
473
    </operation>
474
    <operation name="PLS_NOTIFCB">
475
      <input message="s0:Webservice_Residants_PLS_NOTIFCB_MessageIn"/>
476
      <output message="s0:Webservice_Residants_PLS_NOTIFCB_MessageOut"/>
477
    </operation>
478
    <operation name="PLS_ENVOIPJ">
479
      <input message="s0:Webservice_Residants_PLS_ENVOIPJ_MessageIn"/>
480
      <output message="s0:Webservice_Residants_PLS_ENVOIPJ_MessageOut"/>
481
    </operation>
482
    <operation name="FPS_Rech_Immat">
483
      <documentation> R&amp;eacute;sum&amp;eacute; : &amp;lt;indiquez ici ce que fait la proc&amp;eacute;dure&amp;gt;&lt;br /&gt; Syntaxe :&lt;br /&gt;[ &amp;lt;R&amp;eacute;sultat&amp;gt; = ] FPS_Rech_Immat (&amp;lt;Immatriculation&amp;gt; est cha&amp;#238;ne, &amp;lt;Date&amp;gt; est cha&amp;#238;ne)&lt;br /&gt;&lt;br /&gt; Param&amp;egrave;tres :&lt;br /&gt;	Immatriculation (cha&amp;#238;ne ANSI) : &amp;lt;indiquez ici le r&amp;#244;le de Immatriculation&amp;gt;&lt;br /&gt;	Date (cha&amp;#238;ne ANSI) : &amp;lt;indiquez ici le r&amp;#244;le de Date&amp;gt;&lt;br /&gt; Valeur de retour :&lt;br /&gt; 	Retour_FPS : // 	Aucune&lt;br /&gt;&lt;br /&gt; Exemple :&lt;br /&gt; Indiquez ici un exemple d'utilisation.&lt;br /&gt;</documentation>
484
      <input message="s0:Webservice_Residants_FPS_Rech_Immat_MessageIn"/>
485
      <output message="s0:Webservice_Residants_FPS_Rech_Immat_MessageOut"/>
486
    </operation>
487
  </portType>
488
  <binding name="Webservice_ResidantsSOAPBinding" type="s0:Webservice_ResidantsSOAPPortType">
489
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
490
    <operation name="PLS_EXIST">
491
      <soap:operation soapAction="urn:Webservice_Residants/PLS_EXIST" style="document"/>
492
      <input>
493
        <soap:body use="literal"/>
494
      </input>
495
      <output>
496
        <soap:body use="literal"/>
497
      </output>
498
    </operation>
499
    <operation name="PLS_CTRLDOUBLRENOUV">
500
      <soap:operation soapAction="urn:Webservice_Residants/PLS_CTRLDOUBLRENOUV" style="document"/>
501
      <input>
502
        <soap:body use="literal"/>
503
      </input>
504
      <output>
505
        <soap:body use="literal"/>
506
      </output>
507
    </operation>
508
    <operation name="PLS_CTRLDELAIS">
509
      <soap:operation soapAction="urn:Webservice_Residants/PLS_CTRLDELAIS" style="document"/>
510
      <input>
511
        <soap:body use="literal"/>
512
      </input>
513
      <output>
514
        <soap:body use="literal"/>
515
      </output>
516
    </operation>
517
    <operation name="PLS_RECUPD">
518
      <soap:operation soapAction="urn:Webservice_Residants/PLS_RECUPD" style="document"/>
519
      <input>
520
        <soap:body use="literal"/>
521
      </input>
522
      <output>
523
        <soap:body use="literal"/>
524
      </output>
525
    </operation>
526
    <operation name="PLS_ELIGADR">
527
      <soap:operation soapAction="urn:Webservice_Residants/PLS_ELIGADR" style="document"/>
528
      <input>
529
        <soap:body use="literal"/>
530
      </input>
531
      <output>
532
        <soap:body use="literal"/>
533
      </output>
534
    </operation>
535
    <operation name="PLS_ENREG">
536
      <soap:operation soapAction="urn:Webservice_Residants/PLS_ENREG" style="document"/>
537
      <input>
538
        <soap:body use="literal"/>
539
      </input>
540
      <output>
541
        <soap:body use="literal"/>
542
      </output>
543
    </operation>
544
    <operation name="PLS_CTRLDOUBLCREA">
545
      <soap:operation soapAction="urn:Webservice_Residants/PLS_CTRLDOUBLCREA" style="document"/>
546
      <input>
547
        <soap:body use="literal"/>
548
      </input>
549
      <output>
550
        <soap:body use="literal"/>
551
      </output>
552
    </operation>
553
    <operation name="PLS_CTRLUSAGERCONNUCREA">
554
      <soap:operation soapAction="urn:Webservice_Residants/PLS_CTRLUSAGERCONNUCREA" style="document"/>
555
      <input>
556
        <soap:body use="literal"/>
557
      </input>
558
      <output>
559
        <soap:body use="literal"/>
560
      </output>
561
    </operation>
562
    <operation name="PLS_RECUPAIEM">
563
      <soap:operation soapAction="urn:Webservice_Residants/PLS_RECUPAIEM" style="document"/>
564
      <input>
565
        <soap:body use="literal"/>
566
      </input>
567
      <output>
568
        <soap:body use="literal"/>
569
      </output>
570
    </operation>
571
    <operation name="PLS_NOTIFCB">
572
      <soap:operation soapAction="urn:Webservice_Residants/PLS_NOTIFCB" style="document"/>
573
      <input>
574
        <soap:body use="literal"/>
575
      </input>
576
      <output>
577
        <soap:body use="literal"/>
578
      </output>
579
    </operation>
580
    <operation name="PLS_ENVOIPJ">
581
      <soap:operation soapAction="urn:Webservice_Residants/PLS_ENVOIPJ" style="document"/>
582
      <input>
583
        <soap:body use="literal"/>
584
      </input>
585
      <output>
586
        <soap:body use="literal"/>
587
      </output>
588
    </operation>
589
    <operation name="FPS_Rech_Immat">
590
      <soap:operation soapAction="urn:Webservice_Residants/FPS_Rech_Immat" style="document"/>
591
      <input>
592
        <soap:body use="literal"/>
593
      </input>
594
      <output>
595
        <soap:body use="literal"/>
596
      </output>
597
    </operation>
598
  </binding>
599
  <service name="Webservice_Residants">
600
    <port name="Webservice_ResidantsSOAPPort" binding="s0:Webservice_ResidantsSOAPBinding">
601
      <soap:address location="http://W01DPA001T/WEBSERVICE_RESIDANTS_WEB/awws/Webservice_Residants.awws"/>
602
    </port>
603
  </service>
604
</definitions>
tests/test_dpark.py
1 1
# -*- coding: utf-8 -*-
2 2
import base64
3
from lxml import objectify as xobject
3 4
import mock
5
import os
4 6
import pytest
5 7

  
6 8
from zeep.exceptions import TransportError, Fault as WebFault
7 9

  
8
from utils import make_resource
10
from utils import make_resource, FakedResponse
9 11

  
10 12
from passerelle.contrib.dpark.models import DPark, Pairing
11 13
from passerelle.utils.jsonresponse import APIError
......
487 489
        'content': base64.b64encode('this is my proof of address')}
488 490
    params['cartegrise,1'] = {
489 491
        'filename': 'cartegrise.pdf', 'content_type': 'application/pdf',
490
        'content': base64.b64encode('whatever')
492
        'content': base64.b64encode('carte grise 1')
491 493
    }
492 494
    params['toto,6'] = {
493 495
        'filename': 'cartegrisetoto.pdf', 'content_type': 'application/pdf',
......
495 497
    }
496 498
    params['cartegrise,6'] = {
497 499
        'filename': 'cartegrise2.pdf', 'content_type': 'application/pdf',
498
        'content': base64.b64encode('whatever')
500
        'content': base64.b64encode('carte grise 2')
499 501
    }
500 502
    params['taxe_habitat'] = {
501 503
        'filename': 'cartegrise2.pdf', 'content_type': 'application/pdf',
......
529 531
        assert len(soap_call.call_args[0][4]) == 4
530 532
        assert soap_call.call_args[0][4][0]['NomFichier'] == 'cartegrise.pdf'
531 533
        assert soap_call.call_args[0][4][0]['TypeDocument'] == '6'
534
        assert soap_call.call_args[0][4][0]['Fichier'] == 'carte grise 1'
532 535
        assert soap_call.call_args[0][4][1]['NomFichier'] == 'cartegrise2.pdf'
533 536
        assert soap_call.call_args[0][4][1]['TypeDocument'] == '6'
537
        assert soap_call.call_args[0][4][1]['Fichier'] == 'carte grise 2'
538

  
539
    wsldfile = os.path.realpath('tests/data/dpark.awws.wsdl')
540

  
541
    def fake_request(method, url, **kwargs):
542
        if method == 'GET':
543
            content = open(wsldfile).read()
544
        else:
545
            content = """
546
            <?xml version="1.0" encoding="utf-8"?>
547
            <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
548
                <SOAP-ENV:Header/>
549
                    <SOAP-ENV:Body>
550
                            <ns1:PLS_ENVOIPJResponse xmlns:ns1="urn:Webservice_Residants">
551
                                <PLS_ENVOIPJResult>
552
                                    <CodeRetour>01</CodeRetour>
553
                                    <MessageRetour/>
554
                                </PLS_ENVOIPJResult>
555
                            </ns1:PLS_ENVOIPJResponse>
556
                    </SOAP-ENV:Body>
557
            </SOAP-ENV:Envelope>
558
            """
559
        return FakedResponse(content=content, status=200)
560

  
561
    with mock.patch('passerelle.utils.Request.request') as request:
562
        request.side_effect = fake_request
563
        resp = app.post_json(url, params=params)
564
        xmsg = request.call_args[1]['data']
565
        xmsg = xobject.fromstring(xmsg)
566
        doc = xmsg.Body.getchildren()[0].getchildren()[3].Fichier.text
567
        assert base64.b64decode(doc) == 'carte grise 1'
568
        doc = xmsg.Body.getchildren()[0].getchildren()[4].Fichier.text
569
        assert base64.b64decode(doc) == 'carte grise 2'
534
-