Projet

Général

Profil

0001-toulouse_maelis-check-status-on-invoices-webservices.patch

Nicolas Roche, 28 juillet 2022 15:52

Télécharger (23,1 ko)

Voir les différences:

Subject: [PATCH] toulouse_maelis: check status on invoices webservices too
 (#67789)

 passerelle/contrib/toulouse_maelis/models.py  |   1 +
 .../data/toulouse_maelis/InvoiceService.wsdl  | 388 ++++++++++++++++++
 tests/test_toulouse_maelis.py                 |  25 +-
 3 files changed, 410 insertions(+), 4 deletions(-)
 create mode 100644 tests/data/toulouse_maelis/InvoiceService.wsdl
passerelle/contrib/toulouse_maelis/models.py
61 61
        try:
62 62
            return method(**kwargs)
63 63
        except zeep.exceptions.Fault as e:
64 64
            raise APIError(e.message, err_code='%s-%s-%s' % (wsdl_short_name, service, e.code))
65 65

  
66 66
    def check_status(self):
67 67
        assert self.call('Family', 'isWSRunning')
68 68
        assert self.call('Activity', 'isWSRunning')
69
        assert self.call('Invoice', 'isWSRunning')
69 70

  
70 71
    def get_referential(self, referential_name):
71 72

  
72 73
        # local referentials
73 74
        if referential_name == 'Complement':
74 75
            response = [
75 76
                {'id': 'B', 'text': 'bis'},
76 77
                {'id': 'T', 'text': 'ter'},
tests/data/toulouse_maelis/InvoiceService.wsdl
1
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="ws.maelis.sigec.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="InvoiceService" targetNamespace="ws.maelis.sigec.com">
2
  <wsdl:types>
3
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="ws.maelis.sigec.com" xmlns:ns1="bean.persistence.ws.maelis.sigec.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="ws.maelis.sigec.com">
4
  <xs:import namespace="bean.persistence.ws.maelis.sigec.com"/>
5
  <xs:element name="addDirectDebitOrder" type="tns:addDirectDebitOrder"/>
6
  <xs:element name="addDirectDebitOrderResponse" type="tns:addDirectDebitOrderResponse"/>
7
  <xs:element name="getDirectDebitOrder" type="tns:getDirectDebitOrder"/>
8
  <xs:element name="getDirectDebitOrderResponse" type="tns:getDirectDebitOrderResponse"/>
9
  <xs:element name="isWSRunning" type="tns:isWSRunning"/>
10
  <xs:element name="isWSRunningResponse" type="tns:isWSRunningResponse"/>
11
  <xs:element name="payInvoices" type="tns:payInvoices"/>
12
  <xs:element name="payInvoicesResponse" type="tns:payInvoicesResponse"/>
13
  <xs:element name="readInvoices" type="tns:readInvoices"/>
14
  <xs:element name="readInvoicesResponse" type="tns:readInvoicesResponse"/>
15
  <xs:complexType name="payInvoices">
16
    <xs:sequence>
17
      <xs:element name="numFamily" type="xs:int"/>
18
      <xs:element minOccurs="0" name="numPerson" type="xs:int"/>
19
      <xs:element minOccurs="0" name="lastName" type="xs:string"/>
20
      <xs:element minOccurs="0" name="firstName" type="xs:string"/>
21
      <xs:element name="codeRegie" type="xs:int"/>
22
      <xs:element name="amount" type="xs:double"/>
23
      <xs:element name="datePaiement" type="xs:dateTime"/>
24
      <xs:element name="refTransaction" type="xs:string"/>
25
      <xs:element maxOccurs="unbounded" name="numInvoices" type="xs:int"/>
26
    </xs:sequence>
27
  </xs:complexType>
28
  <xs:complexType name="payInvoicesResponse">
29
    <xs:sequence>
30
      <xs:element minOccurs="0" name="numReglement" type="xs:int"/>
31
    </xs:sequence>
32
  </xs:complexType>
33
  <xs:complexType name="getDirectDebitOrder">
34
    <xs:sequence>
35
      <xs:element name="dossierNumber" type="xs:int"/>
36
      <xs:element name="numPerson" type="xs:int"/>
37
      <xs:element name="codeRegie" type="xs:int"/>
38
      <xs:element name="dateRef" type="xs:dateTime"/>
39
    </xs:sequence>
40
  </xs:complexType>
41
  <xs:complexType name="getDirectDebitOrderResponse">
42
    <xs:sequence>
43
      <xs:element minOccurs="0" name="return" type="ns1:personBankBean"/>
44
    </xs:sequence>
45
  </xs:complexType>
46
  <xs:complexType abstract="true" name="abstractSpecBean">
47
    <xs:sequence/>
48
  </xs:complexType>
49
  <xs:complexType name="isWSRunning">
50
    <xs:sequence/>
51
  </xs:complexType>
52
  <xs:complexType name="isWSRunningResponse">
53
    <xs:sequence>
54
      <xs:element name="isWSRunning" type="xs:boolean"/>
55
    </xs:sequence>
56
  </xs:complexType>
57
  <xs:complexType name="addDirectDebitOrder">
58
    <xs:sequence>
59
      <xs:element name="dossierNumber" type="xs:int"/>
60
      <xs:element name="numPerson" type="xs:int"/>
61
      <xs:element name="bank" type="ns1:personBankBean"/>
62
      <xs:element name="codeRegie" type="xs:int"/>
63
    </xs:sequence>
64
  </xs:complexType>
65
  <xs:complexType name="addDirectDebitOrderResponse">
66
    <xs:sequence/>
67
  </xs:complexType>
68
  <xs:complexType name="readInvoices">
69
    <xs:sequence>
70
      <xs:element name="numDossier" type="xs:int"/>
71
      <xs:element name="codeRegie" type="xs:int"/>
72
      <xs:element name="dateStart" type="xs:dateTime"/>
73
      <xs:element name="dateEnd" type="xs:dateTime"/>
74
    </xs:sequence>
75
  </xs:complexType>
76
  <xs:complexType name="readInvoicesResponse">
77
    <xs:sequence>
78
      <xs:element maxOccurs="unbounded" minOccurs="0" name="invoiceList" type="ns1:invoiceBean"/>
79
    </xs:sequence>
80
  </xs:complexType>
81
  <xs:complexType name="ttfKernelBean">
82
    <xs:sequence>
83
      <xs:element minOccurs="0" name="footerLine1" type="xs:string"/>
84
      <xs:element minOccurs="0" name="footerLine2" type="xs:string"/>
85
      <xs:element minOccurs="0" name="footerLine3" type="xs:string"/>
86
      <xs:element minOccurs="0" name="footerLine4" type="xs:string"/>
87
      <xs:element minOccurs="0" name="footerLine5" type="xs:string"/>
88
      <xs:element minOccurs="0" name="headerLine1" type="xs:string"/>
89
      <xs:element minOccurs="0" name="headerLine2" type="xs:string"/>
90
      <xs:element minOccurs="0" name="headerLine3" type="xs:string"/>
91
      <xs:element minOccurs="0" name="headerLine4" type="xs:string"/>
92
      <xs:element minOccurs="0" name="headerLine5" type="xs:string"/>
93
      <xs:element minOccurs="0" name="libelle" type="xs:string"/>
94
    </xs:sequence>
95
  </xs:complexType>
96
  <xs:element name="MaelisAccountException" type="tns:MaelisAccountException"/>
97
  <xs:complexType name="MaelisAccountException">
98
    <xs:sequence>
99
      <xs:element minOccurs="0" name="message" type="xs:string"/>
100
      <xs:element minOccurs="0" name="message" type="xs:string"/>
101
    </xs:sequence>
102
  </xs:complexType>
103
</xs:schema>
104
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="bean.persistence.ws.maelis.sigec.com" xmlns:ns1="ws.maelis.sigec.com" targetNamespace="bean.persistence.ws.maelis.sigec.com" version="1.0">
105

  
106
  <xs:import namespace="ws.maelis.sigec.com"/>
107

  
108
  <xs:complexType name="personBankBean">
109
    <xs:complexContent>
110
      <xs:extension base="ns1:abstractSpecBean">
111
        <xs:sequence>
112
          <xs:element name="bankBIC" type="xs:string"/>
113
          <xs:element name="bankIBAN" type="xs:string"/>
114
          <xs:element name="bankRUM" type="xs:string"/>
115
          <xs:element name="dateStart" type="xs:dateTime"/>
116
          <xs:element name="bankAddress" type="xs:string"/>
117
          <xs:element minOccurs="0" name="civility" type="xs:string"/>
118
          <xs:element name="lastName" type="xs:string"/>
119
          <xs:element name="firstName" type="xs:string"/>
120
        </xs:sequence>
121
      </xs:extension>
122
    </xs:complexContent>
123
  </xs:complexType>
124

  
125
  <xs:complexType name="invoiceBean">
126
    <xs:sequence>
127
      <xs:element minOccurs="0" name="numInvoice" type="xs:string"/>
128
      <xs:element minOccurs="0" name="libelleTTF" type="xs:string"/>
129
      <xs:element minOccurs="0" name="regie" type="tns:regieBean"/>
130
      <xs:element minOccurs="0" name="numFamily" type="xs:int"/>
131
      <xs:element minOccurs="0" name="name" type="xs:string"/>
132
      <xs:element minOccurs="0" name="refTIPI" type="xs:string"/>
133
      <xs:element minOccurs="0" name="amountInvoice" type="xs:decimal"/>
134
      <xs:element minOccurs="0" name="amountPaid" type="xs:decimal"/>
135
      <xs:element minOccurs="0" name="amountPaidTG" type="xs:decimal"/>
136
      <xs:element minOccurs="0" name="dateInvoice" type="xs:dateTime"/>
137
      <xs:element minOccurs="0" name="dateStartPayment" type="xs:dateTime"/>
138
      <xs:element minOccurs="0" name="dateDeadline" type="xs:dateTime"/>
139
      <xs:element minOccurs="0" name="dateDeadlinePayment" type="xs:dateTime"/>
140
      <xs:element minOccurs="0" name="dateTIPI" type="xs:dateTime"/>
141
      <xs:element minOccurs="0" name="authTIPI" type="xs:string"/>
142
      <xs:element minOccurs="0" name="pdfName" type="xs:string"/>
143
      <xs:element maxOccurs="unbounded" minOccurs="0" name="lineInvoiceList" nillable="true" type="tns:lineInvoiceBean"/>
144
    </xs:sequence>
145
  </xs:complexType>
146

  
147
  <xs:complexType name="regieBean">
148
    <xs:sequence>
149
      <xs:element minOccurs="0" name="code" type="xs:int"/>
150
      <xs:element minOccurs="0" name="libelle" type="xs:string"/>
151
    </xs:sequence>
152
  </xs:complexType>
153

  
154
  <xs:complexType name="lineInvoiceBean">
155
    <xs:sequence>
156
      <xs:element name="numLine" type="xs:int"/>
157
      <xs:element minOccurs="0" name="numPers" type="xs:string"/>
158
      <xs:element minOccurs="0" name="idActivity" type="xs:string"/>
159
      <xs:element minOccurs="0" name="idUnit" type="xs:string"/>
160
      <xs:element minOccurs="0" name="libelleLine" type="xs:string"/>
161
      <xs:element minOccurs="0" name="name" type="xs:string"/>
162
      <xs:element minOccurs="0" name="dateStart" type="xs:dateTime"/>
163
      <xs:element minOccurs="0" name="dateEnd" type="xs:dateTime"/>
164
      <xs:element minOccurs="0" name="quantity" type="xs:double"/>
165
      <xs:element minOccurs="0" name="unitPrice" type="xs:double"/>
166
      <xs:element minOccurs="0" name="amountLine" type="xs:decimal"/>
167
    </xs:sequence>
168
  </xs:complexType>
169

  
170
</xs:schema>
171
  </wsdl:types>
172
  <wsdl:message name="payInvoices">
173
    <wsdl:part element="tns:payInvoices" name="parameters">
174
    </wsdl:part>
175
  </wsdl:message>
176
  <wsdl:message name="getDirectDebitOrder">
177
    <wsdl:part element="tns:getDirectDebitOrder" name="parameters">
178
    </wsdl:part>
179
  </wsdl:message>
180
  <wsdl:message name="isWSRunning">
181
    <wsdl:part element="tns:isWSRunning" name="parameters">
182
    </wsdl:part>
183
  </wsdl:message>
184
  <wsdl:message name="getDirectDebitOrderResponse">
185
    <wsdl:part element="tns:getDirectDebitOrderResponse" name="parameters">
186
    </wsdl:part>
187
  </wsdl:message>
188
  <wsdl:message name="addDirectDebitOrder">
189
    <wsdl:part element="tns:addDirectDebitOrder" name="parameters">
190
    </wsdl:part>
191
  </wsdl:message>
192
  <wsdl:message name="readInvoices">
193
    <wsdl:part element="tns:readInvoices" name="parameters">
194
    </wsdl:part>
195
  </wsdl:message>
196
  <wsdl:message name="payInvoicesResponse">
197
    <wsdl:part element="tns:payInvoicesResponse" name="parameters">
198
    </wsdl:part>
199
  </wsdl:message>
200
  <wsdl:message name="MaelisAccountException">
201
    <wsdl:part element="tns:MaelisAccountException" name="MaelisAccountException">
202
    </wsdl:part>
203
  </wsdl:message>
204
  <wsdl:message name="readInvoicesResponse">
205
    <wsdl:part element="tns:readInvoicesResponse" name="parameters">
206
    </wsdl:part>
207
  </wsdl:message>
208
  <wsdl:message name="isWSRunningResponse">
209
    <wsdl:part element="tns:isWSRunningResponse" name="parameters">
210
    </wsdl:part>
211
  </wsdl:message>
212
  <wsdl:message name="addDirectDebitOrderResponse">
213
    <wsdl:part element="tns:addDirectDebitOrderResponse" name="parameters">
214
    </wsdl:part>
215
  </wsdl:message>
216
  <wsdl:portType name="InvoiceService">
217
<wsdl:documentation>Attention : Il est nécessaire de paramétrer un code pour la régie qui doit être passé en paramètre lors de l'invocation de la méthode.</wsdl:documentation>
218
    <wsdl:operation name="payInvoices">
219
<wsdl:documentation>Service d'enregistrement des paiements effectués par une famille 
220
 La personne qui effectue le règlement de la facture doit être Rl1 ou Rl2 de la famille
221
 Solde de la liste des factures passées en paramètre
222
 Enregistrement du règlement 
223
 Mise à jour de la balance familiale 
224

  
225
 ----------------------------------- 
226
 numFamily : numéro de la famille 
227
 numPerson : numéro de la personne qui effectue le règlement 
228
 lastName : nom de la personne qui effectue le règlement 
229
 firstName : prénom de la personne qui effectue le règlement 
230
 codeRegie : code de la régie 
231
 amount : montant du règlement 
232
 datePaiement : date du règlement 
233
 refTransaction : référence de la transaction 
234
 numInvoices : liste des numéros de factures réglées 
235
 Retourne le numéro du règlement 
236

  
237
 ----------------------------------- 
238
 Attention : Le numéro ou le nom/prénom de la personne doivent être fournis </wsdl:documentation>
239
      <wsdl:input message="tns:payInvoices" name="payInvoices">
240
    </wsdl:input>
241
      <wsdl:output message="tns:payInvoicesResponse" name="payInvoicesResponse">
242
    </wsdl:output>
243
      <wsdl:fault message="tns:MaelisAccountException" name="MaelisAccountException">
244
    </wsdl:fault>
245
    </wsdl:operation>
246
    <wsdl:operation name="getDirectDebitOrder">
247
<wsdl:documentation> Lecture des informations relatives à l'autorisation de prélèvement en cours à la date de référence 
248
 
249

  
250
 ------------------------
251
 dossierNumber: numéro de dossier
252
 numPerson: numéro MAELIS de la personne 
253
 codeRegie : code de la régie 
254
 dateRef: date de référence 
255

  
256
 ---------------------------</wsdl:documentation>
257
      <wsdl:input message="tns:getDirectDebitOrder" name="getDirectDebitOrder">
258
    </wsdl:input>
259
      <wsdl:output message="tns:getDirectDebitOrderResponse" name="getDirectDebitOrderResponse">
260
    </wsdl:output>
261
      <wsdl:fault message="tns:MaelisAccountException" name="MaelisAccountException">
262
    </wsdl:fault>
263
    </wsdl:operation>
264
    <wsdl:operation name="isWSRunning">
265
<wsdl:documentation>Méthode pour vérifier si le webservice est OK
266

  
267
 -------------------------
268
 Retourne vrai ou faux </wsdl:documentation>
269
      <wsdl:input message="tns:isWSRunning" name="isWSRunning">
270
    </wsdl:input>
271
      <wsdl:output message="tns:isWSRunningResponse" name="isWSRunningResponse">
272
    </wsdl:output>
273
      <wsdl:fault message="tns:MaelisAccountException" name="MaelisAccountException">
274
    </wsdl:fault>
275
    </wsdl:operation>
276
    <wsdl:operation name="addDirectDebitOrder">
277
<wsdl:documentation> Service d'ajout d'autorisation de prélèvement
278
 
279

  
280
 ------------------------
281
 dossierNumber : Numéro de dossier (numéro famille).
282
 numPerson : numéro de la personne titulaire
283
 bank : personBankBean coordonnées du compte à débiter (coordonnées bancaires)
284
 codeRegie : code de la régie 
285

  
286
 ---------------------------
287
 Plusieurs cas peuvent se produire :
288
 _	S'il les références bancaires correspondant à la demande n'existent pas, création de références bancaires avec le top de prélèvement dont la date de début correspond à la date d'effet. 
289
 _	S'il existe des références bancaires différentes de celles de la demande pour la personne ou pour l'autre responsable de la famille, elles sont clôturées à la date d'effet - 1 jour
290
 _	S'il existe des références bancaires correspondant à la demande 
291
	*	Si le top de prélèvement automatique est déjà positionné, aucun traitement n'est effectué.
292
	*	Si le top de prélèvement automatique n'est pas positionné :
293
		-	Si la RUM n'est pas fournie : Création de nouvelles références bancaires avec le top de prélèvement positionné dont la date de début correspond à la date d'effet avec génération de la RUM. La date de signature du mandat est la date d'effet. Si la RUM est fournie : L'enregistrer
294
		-	Clôture des références « sans prélèvement » à la date d'effet - 1 jour 
295
		</wsdl:documentation>
296
      <wsdl:input message="tns:addDirectDebitOrder" name="addDirectDebitOrder">
297
    </wsdl:input>
298
      <wsdl:output message="tns:addDirectDebitOrderResponse" name="addDirectDebitOrderResponse">
299
    </wsdl:output>
300
      <wsdl:fault message="tns:MaelisAccountException" name="MaelisAccountException">
301
    </wsdl:fault>
302
    </wsdl:operation>
303
    <wsdl:operation name="readInvoices">
304
<wsdl:documentation>Récupération de toutes les factures de la famille, pour la régie et la plage de dates. 
305

  
306
 ----------------------------------- 
307
 numDossier : numéro de la famille
308
 codeRegie : code de la régie
309
 dateStart : date de début des factures à récupérer
310
 dateEnd : date de fin des factures à récupérer
311
 Retourne la liste des factures</wsdl:documentation>
312
      <wsdl:input message="tns:readInvoices" name="readInvoices">
313
    </wsdl:input>
314
      <wsdl:output message="tns:readInvoicesResponse" name="readInvoicesResponse">
315
    </wsdl:output>
316
      <wsdl:fault message="tns:MaelisAccountException" name="MaelisAccountException">
317
    </wsdl:fault>
318
    </wsdl:operation>
319
  </wsdl:portType>
320
  <wsdl:binding name="InvoiceServiceSoapBinding" type="tns:InvoiceService">
321
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
322
    <wsdl:operation name="payInvoices">
323
      <soap:operation soapAction="" style="document"/>
324
      <wsdl:input name="payInvoices">
325
        <soap:body use="literal"/>
326
      </wsdl:input>
327
      <wsdl:output name="payInvoicesResponse">
328
        <soap:body use="literal"/>
329
      </wsdl:output>
330
      <wsdl:fault name="MaelisAccountException">
331
        <soap:fault name="MaelisAccountException" use="literal"/>
332
      </wsdl:fault>
333
    </wsdl:operation>
334
    <wsdl:operation name="getDirectDebitOrder">
335
      <soap:operation soapAction="" style="document"/>
336
      <wsdl:input name="getDirectDebitOrder">
337
        <soap:body use="literal"/>
338
      </wsdl:input>
339
      <wsdl:output name="getDirectDebitOrderResponse">
340
        <soap:body use="literal"/>
341
      </wsdl:output>
342
      <wsdl:fault name="MaelisAccountException">
343
        <soap:fault name="MaelisAccountException" use="literal"/>
344
      </wsdl:fault>
345
    </wsdl:operation>
346
    <wsdl:operation name="isWSRunning">
347
      <soap:operation soapAction="" style="document"/>
348
      <wsdl:input name="isWSRunning">
349
        <soap:body use="literal"/>
350
      </wsdl:input>
351
      <wsdl:output name="isWSRunningResponse">
352
        <soap:body use="literal"/>
353
      </wsdl:output>
354
      <wsdl:fault name="MaelisAccountException">
355
        <soap:fault name="MaelisAccountException" use="literal"/>
356
      </wsdl:fault>
357
    </wsdl:operation>
358
    <wsdl:operation name="addDirectDebitOrder">
359
      <soap:operation soapAction="" style="document"/>
360
      <wsdl:input name="addDirectDebitOrder">
361
        <soap:body use="literal"/>
362
      </wsdl:input>
363
      <wsdl:output name="addDirectDebitOrderResponse">
364
        <soap:body use="literal"/>
365
      </wsdl:output>
366
      <wsdl:fault name="MaelisAccountException">
367
        <soap:fault name="MaelisAccountException" use="literal"/>
368
      </wsdl:fault>
369
    </wsdl:operation>
370
    <wsdl:operation name="readInvoices">
371
      <soap:operation soapAction="" style="document"/>
372
      <wsdl:input name="readInvoices">
373
        <soap:body use="literal"/>
374
      </wsdl:input>
375
      <wsdl:output name="readInvoicesResponse">
376
        <soap:body use="literal"/>
377
      </wsdl:output>
378
      <wsdl:fault name="MaelisAccountException">
379
        <soap:fault name="MaelisAccountException" use="literal"/>
380
      </wsdl:fault>
381
    </wsdl:operation>
382
  </wsdl:binding>
383
  <wsdl:service name="InvoiceService">
384
    <wsdl:port binding="tns:InvoiceServiceSoapBinding" name="InvoiceServiceImplPort">
385
      <soap:address location="https://demo-toulouse.sigec.fr/maelisws-toulouse/services/InvoiceService"/>
386
    </wsdl:port>
387
  </wsdl:service>
388
</wsdl:definitions>
tests/test_toulouse_maelis.py
33 33
def get_xml_file(filename):
34 34
    with open(os.path.join(TEST_BASE_DIR, filename), 'rb') as desc:
35 35
        return desc.read()
36 36

  
37 37

  
38 38
CONNECTION_ERROR = ConnectionError('No address associated with hostname')
39 39
FAMILY_SERVICE_WSDL = FakedResponse(content=get_xml_file('FamilyService.wsdl'), status_code=200)
40 40
ACTIVITY_SERVICE_WSDL = FakedResponse(content=get_xml_file('ActivityService.wsdl'), status_code=200)
41
INVOICE_SERVICE_WSDL = FakedResponse(content=get_xml_file('InvoiceService.wsdl'), status_code=200)
41 42
FAILED_AUTH = FakedResponse(content=get_xml_file('R_failed_authentication.xml'), status_code=500)
42 43
ISWSRUNNING_TRUE = FakedResponse(content=get_xml_file('R_is_ws_running.xml') % b'true', status_code=200)
43 44
ISWSRUNNING_FALSE = FakedResponse(content=get_xml_file('R_is_ws_running.xml') % b'false', status_code=200)
44 45
READ_FAMILY = FakedResponse(content=get_xml_file('R_read_family.xml'), status_code=200)
45 46
READ_CATEGORIES = FakedResponse(content=get_xml_file('R_read_category_list.xml'), status_code=200)
46 47
READ_CIVILITIES = FakedResponse(content=get_xml_file('R_read_civility_list.xml'), status_code=200)
47 48
READ_CSP = FakedResponse(content=get_xml_file('R_read_csp_list.xml'), status_code=200)
48 49
READ_DIETCODE = FakedResponse(content=get_xml_file('R_read_dietcode_list.xml'), status_code=200)
......
126 127
    mocked_post.side_effect = [ISWSRUNNING_TRUE]
127 128
    resp = con.call('Family', 'isWSRunning')
128 129
    assert resp is True
129 130

  
130 131

  
131 132
@pytest.mark.parametrize(
132 133
    'get_responses, post_responses, exception',
133 134
    [
134
        ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], None),
135
        ([FAMILY_SERVICE_WSDL, CONNECTION_ERROR], [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], SOAPError),
136
        ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, FAILED_AUTH], APIError),
137
        ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, ISWSRUNNING_FALSE], AssertionError),
135
        (
136
            [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL],
137
            [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_TRUE],
138
            None,
139
        ),
140
        (
141
            [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, CONNECTION_ERROR],
142
            [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_TRUE],
143
            SOAPError,
144
        ),
145
        (
146
            [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL],
147
            [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, FAILED_AUTH],
148
            APIError,
149
        ),
150
        (
151
            [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL],
152
            [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_FALSE],
153
            AssertionError,
154
        ),
138 155
    ],
139 156
)
140 157
@mock.patch('passerelle.utils.Request.get')
141 158
@mock.patch('passerelle.utils.Request.post')
142 159
def test_check_status(mocked_post, mocked_get, get_responses, post_responses, exception, con):
143 160
    mocked_get.side_effect = get_responses
144 161
    mocked_post.side_effect = post_responses
145 162
    if exception:
146
-