Projet

Général

Profil

0002-sms-add-test-for-Orange-SMS-gateway-connector-36921.patch

Nicolas Roche, 29 octobre 2019 21:44

Télécharger (37,3 ko)

Voir les différences:

Subject: [PATCH 2/3] sms: add test for Orange SMS gateway connector (#36921)

 tests/data/orange.wsdl                        | 697 ++++++++++++++++++
 .../data/orange_sendAdvancedMessage_query.xml |  31 +
 tests/test_sms.py                             |  83 +++
 3 files changed, 811 insertions(+)
 create mode 100644 tests/data/orange.wsdl
 create mode 100644 tests/data/orange_sendAdvancedMessage_query.xml
tests/data/orange.wsdl
1
<?xml version="1.0" encoding="UTF-8"?>
2
<wsdl:definitions targetNamespace="MultiDiffusionWS" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="MultiDiffusionWS" xmlns:intf="MultiDiffusionWS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
<!--WSDL created by Apache Axis version: 1.4
4
Built on Apr 22, 2006 (06:55:48 PDT)-->
5
  <wsdl:types>
6
    <schema elementFormDefault="qualified" targetNamespace="MultiDiffusionWS" xmlns="http://www.w3.org/2001/XMLSchema">
7
      <element name="sendMessage">
8
        <complexType>
9
          <sequence>
10
            <element name="wsMessage" type="impl:WSMessage"/>
11
          </sequence>
12
        </complexType>
13
      </element>
14
      <complexType name="WSMessage">
15
        <sequence>
16
          <element name="content" nillable="true" type="xsd:string"/>
17
          <element name="custId" nillable="true" type="xsd:string"/>
18
          <element name="from" nillable="true" type="xsd:string"/>
19
          <element name="fullContenu" type="xsd:boolean"/>
20
          <element name="orgName" nillable="true" type="xsd:string"/>
21
          <element name="resumeContent" nillable="true" type="xsd:string"/>
22
          <element name="sendProfiles" nillable="true" type="xsd:string"/>
23
          <element name="strategy" nillable="true" type="xsd:string"/>
24
          <element name="subject" nillable="true" type="xsd:string"/>
25
          <element name="to" nillable="true" type="xsd:string"/>
26
        </sequence>
27
      </complexType>
28
      <element name="sendMessageResponse">
29
        <complexType>
30
          <sequence>
31
            <element name="sendMessageReturn" type="impl:WSSendReport"/>
32
          </sequence>
33
        </complexType>
34
      </element>
35
      <complexType name="WSSendReport">
36
        <sequence>
37
          <element name="msgId" nillable="true" type="xsd:string"/>
38
        </sequence>
39
      </complexType>
40
      <element name="stopMessage">
41
        <complexType>
42
          <sequence>
43
            <element name="custId" type="xsd:string"/>
44
            <element name="idMessage" type="xsd:int"/>
45
          </sequence>
46
        </complexType>
47
      </element>
48
      <element name="stopMessageResponse">
49
        <complexType>
50
          <sequence>
51
            <element name="stopMessageReturn" type="impl:WSSendReport"/>
52
          </sequence>
53
        </complexType>
54
      </element>
55
      <element name="getListDescriptors">
56
        <complexType>
57
          <sequence>
58
            <element name="custId" type="xsd:string"/>
59
          </sequence>
60
        </complexType>
61
      </element>
62
      <element name="getListDescriptorsResponse">
63
        <complexType>
64
          <sequence>
65
            <element name="getListDescriptorsReturn" type="impl:WSListDescriptors"/>
66
          </sequence>
67
        </complexType>
68
      </element>
69
      <complexType name="WSListDescriptor">
70
        <sequence>
71
          <element name="listDescription" nillable="true" type="xsd:string"/>
72
          <element name="listId" nillable="true" type="xsd:string"/>
73
          <element name="listName" nillable="true" type="xsd:string"/>
74
        </sequence>
75
      </complexType>
76
      <complexType name="WSListDescriptors">
77
        <sequence>
78
          <element maxOccurs="unbounded" name="listDescriptors" nillable="true" type="impl:WSListDescriptor"/>
79
        </sequence>
80
      </complexType>
81
      <element name="sendAdvancedMessage">
82
        <complexType>
83
          <sequence>
84
            <element name="wsAdvancedMessage" type="impl:WSAdvancedMessage"/>
85
          </sequence>
86
        </complexType>
87
      </element>
88
      <complexType name="WSAdvancedMessage">
89
        <sequence>
90
          <element name="content" nillable="true" type="xsd:string"/>
91
          <element name="custId" nillable="true" type="xsd:string"/>
92
          <element name="faxReplyTo" nillable="true" type="xsd:string"/>
93
          <element name="from" nillable="true" type="xsd:string"/>
94
          <element name="fullContenu" type="xsd:boolean"/>
95
          <element name="mailReplyTo" nillable="true" type="xsd:string"/>
96
          <element name="orgName" nillable="true" type="xsd:string"/>
97
          <element name="resumeContent" nillable="true" type="xsd:string"/>
98
          <element name="sendProfiles" nillable="true" type="xsd:string"/>
99
          <element name="smsReplyTo" nillable="true" type="xsd:string"/>
100
          <element name="startCall" nillable="true" type="xsd:dateTime"/>
101
          <element name="strategy" nillable="true" type="xsd:string"/>
102
          <element name="subject" nillable="true" type="xsd:string"/>
103
          <element name="telReplyTo" nillable="true" type="xsd:string"/>
104
          <element name="to" nillable="true" type="xsd:string"/>
105
          <element name="validFaxReplyTo" type="xsd:boolean"/>
106
          <element name="validFormatMailReplyTo" type="xsd:boolean"/>
107
          <element name="validMaxStartCall" type="xsd:boolean"/>
108
          <element name="validMinStartCall" type="xsd:boolean"/>
109
          <element name="validSmsReplyTo" type="xsd:boolean"/>
110
          <element name="validTelReplyTo" type="xsd:boolean"/>
111
          <element name="validityPeriod" nillable="true" type="xsd:string"/>
112
        </sequence>
113
      </complexType>
114
      <element name="sendAdvancedMessageResponse">
115
        <complexType>
116
          <sequence>
117
            <element name="sendAdvancedMessageReturn" type="impl:WSSendReport"/>
118
          </sequence>
119
        </complexType>
120
      </element>
121
      <element name="listResults">
122
        <complexType>
123
          <sequence>
124
            <element name="wsFilter" type="impl:WSListFilter"/>
125
          </sequence>
126
        </complexType>
127
      </element>
128
      <complexType name="WSListFilter">
129
        <sequence>
130
          <element name="custId" nillable="true" type="xsd:string"/>
131
          <element name="dateBegin" nillable="true" type="xsd:dateTime"/>
132
          <element name="dateEnd" nillable="true" type="xsd:dateTime"/>
133
          <element name="from" nillable="true" type="xsd:string"/>
134
          <element maxOccurs="unbounded" name="msgIds" nillable="true" type="xsd:string"/>
135
          <element name="status" nillable="true" type="xsd:string"/>
136
          <element name="to" nillable="true" type="xsd:string"/>
137
        </sequence>
138
      </complexType>
139
      <element name="listResultsResponse">
140
        <complexType>
141
          <sequence>
142
            <element name="listResultsReturn" type="impl:WSResultsReport"/>
143
          </sequence>
144
        </complexType>
145
      </element>
146
      <complexType name="WSResultReport">
147
        <sequence>
148
          <element name="attachedFileName" nillable="true" type="xsd:string"/>
149
          <element name="audioFileName" nillable="true" type="xsd:string"/>
150
          <element name="content" nillable="true" type="xsd:string"/>
151
          <element name="custId" nillable="true" type="xsd:string"/>
152
          <element name="date" nillable="true" type="xsd:dateTime"/>
153
          <element name="from" nillable="true" type="xsd:string"/>
154
          <element name="msgId" nillable="true" type="xsd:string"/>
155
          <element name="nbProfiles" nillable="true" type="xsd:string"/>
156
          <element name="orgName" nillable="true" type="xsd:string"/>
157
          <element name="resumeContent" nillable="true" type="xsd:string"/>
158
          <element name="status" nillable="true" type="xsd:string"/>
159
          <element name="strategy" nillable="true" type="xsd:string"/>
160
          <element name="subject" nillable="true" type="xsd:string"/>
161
          <element name="to" nillable="true" type="xsd:string"/>
162
        </sequence>
163
      </complexType>
164
      <complexType name="WSResultsReport">
165
        <sequence>
166
          <element maxOccurs="unbounded" name="reports" nillable="true" type="impl:WSResultReport"/>
167
        </sequence>
168
      </complexType>
169
      <element name="listFullResults">
170
        <complexType>
171
          <sequence>
172
            <element name="wsFilter" type="impl:WSListFilter"/>
173
          </sequence>
174
        </complexType>
175
      </element>
176
      <element name="listFullResultsResponse">
177
        <complexType>
178
          <sequence>
179
            <element name="listFullResultsReturn" type="impl:WSFullResultsReport"/>
180
          </sequence>
181
        </complexType>
182
      </element>
183
      <complexType name="WSFullResultReport">
184
        <sequence>
185
          <element name="attachedFileName" nillable="true" type="xsd:string"/>
186
          <element name="audioFileName" nillable="true" type="xsd:string"/>
187
          <element name="content" nillable="true" type="xsd:string"/>
188
          <element name="custId" nillable="true" type="xsd:string"/>
189
          <element name="date" nillable="true" type="xsd:dateTime"/>
190
          <element name="from" nillable="true" type="xsd:string"/>
191
          <element name="fullResultProfiles" nillable="true" type="xsd:string"/>
192
          <element name="msgId" nillable="true" type="xsd:string"/>
193
          <element name="nbProfiles" nillable="true" type="xsd:string"/>
194
          <element name="orgName" nillable="true" type="xsd:string"/>
195
          <element name="resumeContent" nillable="true" type="xsd:string"/>
196
          <element name="status" nillable="true" type="xsd:string"/>
197
          <element name="strategy" nillable="true" type="xsd:string"/>
198
          <element name="subject" nillable="true" type="xsd:string"/>
199
          <element name="to" nillable="true" type="xsd:string"/>
200
        </sequence>
201
      </complexType>
202
      <complexType name="WSFullResultsReport">
203
        <sequence>
204
          <element maxOccurs="unbounded" name="fullReports" nillable="true" type="impl:WSFullResultReport"/>
205
        </sequence>
206
      </complexType>
207
      <element name="getAccountInformation">
208
        <complexType>
209
          <sequence>
210
            <element name="custId" type="xsd:string"/>
211
          </sequence>
212
        </complexType>
213
      </element>
214
      <element name="getAccountInformationResponse">
215
        <complexType>
216
          <sequence>
217
            <element name="getAccountInformationReturn" type="impl:WSAccount"/>
218
          </sequence>
219
        </complexType>
220
      </element>
221
      <complexType name="WSAccount">
222
        <sequence>
223
          <element name="archiveTime" nillable="true" type="xsd:string"/>
224
          <element name="custId" nillable="true" type="xsd:string"/>
225
          <element name="status" nillable="true" type="xsd:string"/>
226
          <element maxOccurs="unbounded" name="strategies" nillable="true" type="xsd:string"/>
227
        </sequence>
228
      </complexType>
229
      <element name="addListDescriptor">
230
        <complexType>
231
          <sequence>
232
            <element name="custId" type="xsd:string"/>
233
            <element name="list" type="impl:WSListDescriptor"/>
234
            <element name="sendProfiles" type="xsd:string"/>
235
          </sequence>
236
        </complexType>
237
      </element>
238
      <element name="addListDescriptorResponse">
239
        <complexType>
240
          <sequence>
241
            <element name="addListDescriptorReturn" type="xsd:string"/>
242
          </sequence>
243
        </complexType>
244
      </element>
245
      <element name="modifyListDescriptor">
246
        <complexType>
247
          <sequence>
248
            <element name="custId" type="xsd:string"/>
249
            <element name="list" type="impl:WSListDescriptor"/>
250
            <element name="sendProfiles" type="xsd:string"/>
251
          </sequence>
252
        </complexType>
253
      </element>
254
      <element name="modifyListDescriptorResponse">
255
        <complexType/>
256
      </element>
257
      <element name="removeListDescriptor">
258
        <complexType>
259
          <sequence>
260
            <element name="custId" type="xsd:string"/>
261
            <element name="listId" type="xsd:string"/>
262
          </sequence>
263
        </complexType>
264
      </element>
265
      <element name="removeListDescriptorResponse">
266
        <complexType/>
267
      </element>
268
      <element name="about">
269
        <complexType/>
270
      </element>
271
      <element name="aboutResponse">
272
        <complexType>
273
          <sequence>
274
            <element name="aboutReturn" type="xsd:string"/>
275
          </sequence>
276
        </complexType>
277
      </element>
278
      <element name="listMOs">
279
        <complexType>
280
          <sequence>
281
            <element name="filterMOs" type="impl:WSFilterMO"/>
282
          </sequence>
283
        </complexType>
284
      </element>
285
      <complexType name="WSFilterMO">
286
        <sequence>
287
          <element name="beginDate" nillable="true" type="xsd:dateTime"/>
288
          <element name="endDate" nillable="true" type="xsd:dateTime"/>
289
          <element name="primaryKeyword" nillable="true" type="xsd:string"/>
290
          <element name="secondaryKeyword" nillable="true" type="xsd:string"/>
291
          <element name="shortNumber" nillable="true" type="xsd:string"/>
292
        </sequence>
293
      </complexType>
294
      <element name="listMOsResponse">
295
        <complexType>
296
          <sequence>
297
            <element name="listMOsReturn" type="impl:WSResultsMO"/>
298
          </sequence>
299
        </complexType>
300
      </element>
301
      <complexType name="WSResultMO">
302
        <sequence>
303
          <element name="alias" nillable="true" type="xsd:string"/>
304
          <element name="campaignName" nillable="true" type="xsd:string"/>
305
          <element name="message" nillable="true" type="xsd:string"/>
306
          <element name="primaryKeyword" nillable="true" type="xsd:string"/>
307
          <element name="receiveDate" nillable="true" type="xsd:dateTime"/>
308
          <element name="secondaryKeyword" nillable="true" type="xsd:string"/>
309
          <element name="shortNumber" nillable="true" type="xsd:string"/>
310
        </sequence>
311
      </complexType>
312
      <complexType name="ArrayOfWSResultMO">
313
        <sequence>
314
          <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:WSResultMO"/>
315
        </sequence>
316
      </complexType>
317
      <complexType name="WSResultMOArray">
318
        <sequence>
319
          <element name="WSResultMO" nillable="true" type="impl:ArrayOfWSResultMO"/>
320
        </sequence>
321
      </complexType>
322
      <complexType name="WSResultsMO">
323
        <sequence>
324
          <element name="WSResultsMO" nillable="true" type="impl:WSResultMOArray"/>
325
        </sequence>
326
      </complexType>
327
      <element name="listMO24s">
328
        <complexType>
329
          <sequence>
330
            <element name="filterMOs" type="impl:WSFilterMO24"/>
331
          </sequence>
332
        </complexType>
333
      </element>
334
      <complexType name="WSFilterMO24">
335
        <sequence>
336
          <element name="beginDate" nillable="true" type="xsd:dateTime"/>
337
          <element name="endDate" nillable="true" type="xsd:dateTime"/>
338
        </sequence>
339
      </complexType>
340
      <element name="listMO24sResponse">
341
        <complexType>
342
          <sequence>
343
            <element name="listMO24sReturn" type="impl:WSResultsMO24"/>
344
          </sequence>
345
        </complexType>
346
      </element>
347
      <complexType name="WSResultMT24">
348
        <sequence>
349
          <element name="messageMt" nillable="true" type="xsd:string"/>
350
          <element name="sendDateMt" nillable="true" type="xsd:dateTime"/>
351
        </sequence>
352
      </complexType>
353
      <complexType name="ArrayOfWSResultMT24">
354
        <sequence>
355
          <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:WSResultMT24"/>
356
        </sequence>
357
      </complexType>
358
      <complexType name="WSResultsMT24Array">
359
        <sequence>
360
          <element name="wsResultMt24" nillable="true" type="impl:ArrayOfWSResultMT24"/>
361
        </sequence>
362
      </complexType>
363
      <complexType name="WSResultMO24">
364
        <sequence>
365
          <element name="messageMo" nillable="true" type="xsd:string"/>
366
          <element name="number" nillable="true" type="xsd:string"/>
367
          <element name="receiveDateMo" nillable="true" type="xsd:dateTime"/>
368
          <element name="wsResultsMt24" nillable="true" type="impl:WSResultsMT24Array"/>
369
        </sequence>
370
      </complexType>
371
      <complexType name="ArrayOfWSResultMO24">
372
        <sequence>
373
          <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:WSResultMO24"/>
374
        </sequence>
375
      </complexType>
376
      <complexType name="WSResultsMO24Array">
377
        <sequence>
378
          <element name="WSResultMO" nillable="true" type="impl:ArrayOfWSResultMO24"/>
379
        </sequence>
380
      </complexType>
381
      <complexType name="WSResultsMO24">
382
        <sequence>
383
          <element name="WSResultsMO" nillable="true" type="impl:WSResultsMO24Array"/>
384
        </sequence>
385
      </complexType>
386
    </schema>
387
  </wsdl:types>
388
    <wsdl:message name="modifyListDescriptorRequest">
389
        <wsdl:part element="impl:modifyListDescriptor" name="parameters">
390
        </wsdl:part>
391
    </wsdl:message>
392
    <wsdl:message name="sendMessageResponse">
393
        <wsdl:part element="impl:sendMessageResponse" name="parameters">
394
        </wsdl:part>
395
    </wsdl:message>
396
    <wsdl:message name="aboutRequest">
397
        <wsdl:part element="impl:about" name="parameters">
398
        </wsdl:part>
399
    </wsdl:message>
400
    <wsdl:message name="getListDescriptorsResponse">
401
        <wsdl:part element="impl:getListDescriptorsResponse" name="parameters">
402
        </wsdl:part>
403
    </wsdl:message>
404
    <wsdl:message name="sendAdvancedMessageResponse">
405
        <wsdl:part element="impl:sendAdvancedMessageResponse" name="parameters">
406
        </wsdl:part>
407
    </wsdl:message>
408
    <wsdl:message name="sendAdvancedMessageRequest">
409
        <wsdl:part element="impl:sendAdvancedMessage" name="parameters">
410
        </wsdl:part>
411
    </wsdl:message>
412
    <wsdl:message name="aboutResponse">
413
        <wsdl:part element="impl:aboutResponse" name="parameters">
414
        </wsdl:part>
415
    </wsdl:message>
416
    <wsdl:message name="stopMessageRequest">
417
        <wsdl:part element="impl:stopMessage" name="parameters">
418
        </wsdl:part>
419
    </wsdl:message>
420
    <wsdl:message name="listFullResultsResponse">
421
        <wsdl:part element="impl:listFullResultsResponse" name="parameters">
422
        </wsdl:part>
423
    </wsdl:message>
424
    <wsdl:message name="modifyListDescriptorResponse">
425
        <wsdl:part element="impl:modifyListDescriptorResponse" name="parameters">
426
        </wsdl:part>
427
    </wsdl:message>
428
    <wsdl:message name="addListDescriptorRequest">
429
        <wsdl:part element="impl:addListDescriptor" name="parameters">
430
        </wsdl:part>
431
    </wsdl:message>
432
    <wsdl:message name="addListDescriptorResponse">
433
        <wsdl:part element="impl:addListDescriptorResponse" name="parameters">
434
        </wsdl:part>
435
    </wsdl:message>
436
    <wsdl:message name="listMOsRequest">
437
        <wsdl:part element="impl:listMOs" name="parameters">
438
        </wsdl:part>
439
    </wsdl:message>
440
    <wsdl:message name="getListDescriptorsRequest">
441
        <wsdl:part element="impl:getListDescriptors" name="parameters">
442
        </wsdl:part>
443
    </wsdl:message>
444
    <wsdl:message name="listMOsResponse">
445
        <wsdl:part element="impl:listMOsResponse" name="parameters">
446
        </wsdl:part>
447
    </wsdl:message>
448
    <wsdl:message name="removeListDescriptorRequest">
449
        <wsdl:part element="impl:removeListDescriptor" name="parameters">
450
        </wsdl:part>
451
    </wsdl:message>
452
    <wsdl:message name="listFullResultsRequest">
453
        <wsdl:part element="impl:listFullResults" name="parameters">
454
        </wsdl:part>
455
    </wsdl:message>
456
    <wsdl:message name="stopMessageResponse">
457
        <wsdl:part element="impl:stopMessageResponse" name="parameters">
458
        </wsdl:part>
459
    </wsdl:message>
460
    <wsdl:message name="listMO24sResponse">
461
        <wsdl:part element="impl:listMO24sResponse" name="parameters">
462
        </wsdl:part>
463
    </wsdl:message>
464
    <wsdl:message name="getAccountInformationResponse">
465
        <wsdl:part element="impl:getAccountInformationResponse" name="parameters">
466
        </wsdl:part>
467
    </wsdl:message>
468
    <wsdl:message name="getAccountInformationRequest">
469
        <wsdl:part element="impl:getAccountInformation" name="parameters">
470
        </wsdl:part>
471
    </wsdl:message>
472
    <wsdl:message name="listResultsResponse">
473
        <wsdl:part element="impl:listResultsResponse" name="parameters">
474
        </wsdl:part>
475
    </wsdl:message>
476
    <wsdl:message name="removeListDescriptorResponse">
477
        <wsdl:part element="impl:removeListDescriptorResponse" name="parameters">
478
        </wsdl:part>
479
    </wsdl:message>
480
    <wsdl:message name="sendMessageRequest">
481
        <wsdl:part element="impl:sendMessage" name="parameters">
482
        </wsdl:part>
483
    </wsdl:message>
484
    <wsdl:message name="listResultsRequest">
485
        <wsdl:part element="impl:listResults" name="parameters">
486
        </wsdl:part>
487
    </wsdl:message>
488
    <wsdl:message name="listMO24sRequest">
489
        <wsdl:part element="impl:listMO24s" name="parameters">
490
        </wsdl:part>
491
    </wsdl:message>
492
    <wsdl:portType name="MultiDiffusionWS">
493
        <wsdl:operation name="sendMessage">
494
            <wsdl:input message="impl:sendMessageRequest" name="sendMessageRequest">
495
          </wsdl:input>
496
            <wsdl:output message="impl:sendMessageResponse" name="sendMessageResponse">
497
          </wsdl:output>
498
        </wsdl:operation>
499
        <wsdl:operation name="stopMessage">
500
            <wsdl:input message="impl:stopMessageRequest" name="stopMessageRequest">
501
          </wsdl:input>
502
            <wsdl:output message="impl:stopMessageResponse" name="stopMessageResponse">
503
          </wsdl:output>
504
        </wsdl:operation>
505
        <wsdl:operation name="getListDescriptors">
506
            <wsdl:input message="impl:getListDescriptorsRequest" name="getListDescriptorsRequest">
507
          </wsdl:input>
508
            <wsdl:output message="impl:getListDescriptorsResponse" name="getListDescriptorsResponse">
509
          </wsdl:output>
510
        </wsdl:operation>
511
        <wsdl:operation name="sendAdvancedMessage">
512
            <wsdl:input message="impl:sendAdvancedMessageRequest" name="sendAdvancedMessageRequest">
513
          </wsdl:input>
514
            <wsdl:output message="impl:sendAdvancedMessageResponse" name="sendAdvancedMessageResponse">
515
          </wsdl:output>
516
        </wsdl:operation>
517
        <wsdl:operation name="listResults">
518
            <wsdl:input message="impl:listResultsRequest" name="listResultsRequest">
519
          </wsdl:input>
520
            <wsdl:output message="impl:listResultsResponse" name="listResultsResponse">
521
          </wsdl:output>
522
        </wsdl:operation>
523
        <wsdl:operation name="listFullResults">
524
            <wsdl:input message="impl:listFullResultsRequest" name="listFullResultsRequest">
525
          </wsdl:input>
526
            <wsdl:output message="impl:listFullResultsResponse" name="listFullResultsResponse">
527
          </wsdl:output>
528
        </wsdl:operation>
529
        <wsdl:operation name="getAccountInformation">
530
            <wsdl:input message="impl:getAccountInformationRequest" name="getAccountInformationRequest">
531
          </wsdl:input>
532
            <wsdl:output message="impl:getAccountInformationResponse" name="getAccountInformationResponse">
533
          </wsdl:output>
534
        </wsdl:operation>
535
        <wsdl:operation name="addListDescriptor">
536
            <wsdl:input message="impl:addListDescriptorRequest" name="addListDescriptorRequest">
537
          </wsdl:input>
538
            <wsdl:output message="impl:addListDescriptorResponse" name="addListDescriptorResponse">
539
          </wsdl:output>
540
        </wsdl:operation>
541
        <wsdl:operation name="modifyListDescriptor">
542
            <wsdl:input message="impl:modifyListDescriptorRequest" name="modifyListDescriptorRequest">
543
          </wsdl:input>
544
            <wsdl:output message="impl:modifyListDescriptorResponse" name="modifyListDescriptorResponse">
545
          </wsdl:output>
546
        </wsdl:operation>
547
        <wsdl:operation name="removeListDescriptor">
548
            <wsdl:input message="impl:removeListDescriptorRequest" name="removeListDescriptorRequest">
549
          </wsdl:input>
550
            <wsdl:output message="impl:removeListDescriptorResponse" name="removeListDescriptorResponse">
551
          </wsdl:output>
552
        </wsdl:operation>
553
        <wsdl:operation name="about">
554
            <wsdl:input message="impl:aboutRequest" name="aboutRequest">
555
          </wsdl:input>
556
            <wsdl:output message="impl:aboutResponse" name="aboutResponse">
557
          </wsdl:output>
558
        </wsdl:operation>
559
        <wsdl:operation name="listMOs">
560
            <wsdl:input message="impl:listMOsRequest" name="listMOsRequest">
561
          </wsdl:input>
562
            <wsdl:output message="impl:listMOsResponse" name="listMOsResponse">
563
          </wsdl:output>
564
        </wsdl:operation>
565
        <wsdl:operation name="listMO24s">
566
            <wsdl:input message="impl:listMO24sRequest" name="listMO24sRequest">
567
          </wsdl:input>
568
            <wsdl:output message="impl:listMO24sResponse" name="listMO24sResponse">
569
          </wsdl:output>
570
        </wsdl:operation>
571
    </wsdl:portType>
572
    <wsdl:binding name="MultiDiffusionWSSoapBinding" type="impl:MultiDiffusionWS">
573
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
574
        <wsdl:operation name="sendMessage">
575
            <wsdlsoap:operation soapAction=""/>
576
            <wsdl:input name="sendMessageRequest">
577
                <wsdlsoap:body use="literal"/>
578
            </wsdl:input>
579
            <wsdl:output name="sendMessageResponse">
580
                <wsdlsoap:body use="literal"/>
581
            </wsdl:output>
582
        </wsdl:operation>
583
        <wsdl:operation name="stopMessage">
584
            <wsdlsoap:operation soapAction=""/>
585
            <wsdl:input name="stopMessageRequest">
586
                <wsdlsoap:body use="literal"/>
587
            </wsdl:input>
588
            <wsdl:output name="stopMessageResponse">
589
                <wsdlsoap:body use="literal"/>
590
            </wsdl:output>
591
        </wsdl:operation>
592
        <wsdl:operation name="getListDescriptors">
593
            <wsdlsoap:operation soapAction=""/>
594
            <wsdl:input name="getListDescriptorsRequest">
595
                <wsdlsoap:body use="literal"/>
596
            </wsdl:input>
597
            <wsdl:output name="getListDescriptorsResponse">
598
                <wsdlsoap:body use="literal"/>
599
            </wsdl:output>
600
        </wsdl:operation>
601
        <wsdl:operation name="sendAdvancedMessage">
602
            <wsdlsoap:operation soapAction=""/>
603
            <wsdl:input name="sendAdvancedMessageRequest">
604
                <wsdlsoap:body use="literal"/>
605
            </wsdl:input>
606
            <wsdl:output name="sendAdvancedMessageResponse">
607
                <wsdlsoap:body use="literal"/>
608
            </wsdl:output>
609
        </wsdl:operation>
610
        <wsdl:operation name="listResults">
611
            <wsdlsoap:operation soapAction=""/>
612
            <wsdl:input name="listResultsRequest">
613
                <wsdlsoap:body use="literal"/>
614
            </wsdl:input>
615
            <wsdl:output name="listResultsResponse">
616
                <wsdlsoap:body use="literal"/>
617
            </wsdl:output>
618
        </wsdl:operation>
619
        <wsdl:operation name="listFullResults">
620
            <wsdlsoap:operation soapAction=""/>
621
            <wsdl:input name="listFullResultsRequest">
622
                <wsdlsoap:body use="literal"/>
623
            </wsdl:input>
624
            <wsdl:output name="listFullResultsResponse">
625
                <wsdlsoap:body use="literal"/>
626
            </wsdl:output>
627
        </wsdl:operation>
628
        <wsdl:operation name="getAccountInformation">
629
            <wsdlsoap:operation soapAction=""/>
630
            <wsdl:input name="getAccountInformationRequest">
631
                <wsdlsoap:body use="literal"/>
632
            </wsdl:input>
633
            <wsdl:output name="getAccountInformationResponse">
634
                <wsdlsoap:body use="literal"/>
635
            </wsdl:output>
636
        </wsdl:operation>
637
        <wsdl:operation name="addListDescriptor">
638
            <wsdlsoap:operation soapAction=""/>
639
            <wsdl:input name="addListDescriptorRequest">
640
                <wsdlsoap:body use="literal"/>
641
            </wsdl:input>
642
            <wsdl:output name="addListDescriptorResponse">
643
                <wsdlsoap:body use="literal"/>
644
            </wsdl:output>
645
        </wsdl:operation>
646
        <wsdl:operation name="modifyListDescriptor">
647
            <wsdlsoap:operation soapAction=""/>
648
            <wsdl:input name="modifyListDescriptorRequest">
649
                <wsdlsoap:body use="literal"/>
650
            </wsdl:input>
651
            <wsdl:output name="modifyListDescriptorResponse">
652
                <wsdlsoap:body use="literal"/>
653
            </wsdl:output>
654
        </wsdl:operation>
655
        <wsdl:operation name="removeListDescriptor">
656
            <wsdlsoap:operation soapAction=""/>
657
            <wsdl:input name="removeListDescriptorRequest">
658
                <wsdlsoap:body use="literal"/>
659
            </wsdl:input>
660
            <wsdl:output name="removeListDescriptorResponse">
661
                <wsdlsoap:body use="literal"/>
662
            </wsdl:output>
663
        </wsdl:operation>
664
        <wsdl:operation name="about">
665
            <wsdlsoap:operation soapAction=""/>
666
            <wsdl:input name="aboutRequest">
667
                <wsdlsoap:body use="literal"/>
668
            </wsdl:input>
669
            <wsdl:output name="aboutResponse">
670
                <wsdlsoap:body use="literal"/>
671
            </wsdl:output>
672
        </wsdl:operation>
673
        <wsdl:operation name="listMOs">
674
            <wsdlsoap:operation soapAction=""/>
675
            <wsdl:input name="listMOsRequest">
676
                <wsdlsoap:body use="literal"/>
677
            </wsdl:input>
678
            <wsdl:output name="listMOsResponse">
679
                <wsdlsoap:body use="literal"/>
680
            </wsdl:output>
681
        </wsdl:operation>
682
        <wsdl:operation name="listMO24s">
683
            <wsdlsoap:operation soapAction=""/>
684
            <wsdl:input name="listMO24sRequest">
685
                <wsdlsoap:body use="literal"/>
686
            </wsdl:input>
687
            <wsdl:output name="listMO24sResponse">
688
                <wsdlsoap:body use="literal"/>
689
            </wsdl:output>
690
        </wsdl:operation>
691
    </wsdl:binding>
692
    <wsdl:service name="MultiDiffusionWSService">
693
        <wsdl:port binding="impl:MultiDiffusionWSSoapBinding" name="MultiDiffusionWS">
694
            <wsdlsoap:address location="https://www.api-contact-everyone.fr.orange-business.com/ContactEveryone/services/MultiDiffusionWS"/>
695
        </wsdl:port>
696
    </wsdl:service>
697
</wsdl:definitions>
tests/data/orange_sendAdvancedMessage_query.xml
1
<SOAP-ENV:Envelope xmlns:ns0="MultiDiffusionWS" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
2
  <SOAP-ENV:Header/>
3
  <ns1:Body>
4
    <ns0:sendAdvancedMessage>
5
      <ns0:wsAdvancedMessage>
6
        <ns0:content>hello</ns0:content>
7
        <ns0:custId xsi:nil="true"/>
8
        <ns0:faxReplyTo xsi:nil="true"/>
9
        <ns0:from xsi:nil="true"/>
10
        <ns0:fullContenu>true</ns0:fullContenu>
11
        <ns0:mailReplyTo xsi:nil="true"/>
12
        <ns0:orgName xsi:nil="true"/>
13
        <ns0:resumeContent>hello</ns0:resumeContent>
14
        <ns0:sendProfiles>&lt;PROFILE_LIST&gt;&lt;PROFILE&gt;&lt;DEST_NAME&gt;name_0033688888888&lt;/DEST_NAME&gt;&lt;DEST_FORENAME&gt;forename_0033688888888&lt;/DEST_FORENAME&gt;&lt;DEST_ID&gt;ID_0033688888888&lt;/DEST_ID&gt;&lt;TERMINAL_GROUP&gt;&lt;TERMINAL&gt;&lt;TERMINAL_NAME&gt;mobile1&lt;/TERMINAL_NAME&gt;&lt;TERMINAL_ADDR&gt;0033688888888&lt;/TERMINAL_ADDR&gt;&lt;MEDIA_TYPE_GROUP&gt;&lt;MEDIA_TYPE&gt;sms&lt;/MEDIA_TYPE&gt;&lt;/MEDIA_TYPE_GROUP&gt;&lt;/TERMINAL&gt;&lt;/TERMINAL_GROUP&gt;&lt;/PROFILE&gt;&lt;PROFILE&gt;&lt;DEST_NAME&gt;name_0033677777777&lt;/DEST_NAME&gt;&lt;DEST_FORENAME&gt;forename_0033677777777&lt;/DEST_FORENAME&gt;&lt;DEST_ID&gt;ID_0033677777777&lt;/DEST_ID&gt;&lt;TERMINAL_GROUP&gt;&lt;TERMINAL&gt;&lt;TERMINAL_NAME&gt;mobile1&lt;/TERMINAL_NAME&gt;&lt;TERMINAL_ADDR&gt;0033677777777&lt;/TERMINAL_ADDR&gt;&lt;MEDIA_TYPE_GROUP&gt;&lt;MEDIA_TYPE&gt;sms&lt;/MEDIA_TYPE&gt;&lt;/MEDIA_TYPE_GROUP&gt;&lt;/TERMINAL&gt;&lt;/TERMINAL_GROUP&gt;&lt;/PROFILE&gt;&lt;/PROFILE_LIST&gt;</ns0:sendProfiles>
15
        <ns0:smsReplyTo>+33699999999</ns0:smsReplyTo>
16
        <ns0:startCall xsi:nil="true"/>
17
        <ns0:strategy>sms</ns0:strategy>
18
        <ns0:subject>hello</ns0:subject>
19
        <ns0:telReplyTo xsi:nil="true"/>
20
        <ns0:to xsi:nil="true"/>
21
        <ns0:validFaxReplyTo/>
22
        <ns0:validFormatMailReplyTo/>
23
        <ns0:validMaxStartCall/>
24
        <ns0:validMinStartCall/>
25
        <ns0:validSmsReplyTo/>
26
        <ns0:validTelReplyTo/>
27
        <ns0:validityPeriod xsi:nil="true"/>
28
      </ns0:wsAdvancedMessage>
29
    </ns0:sendAdvancedMessage>
30
  </ns1:Body>
31
</SOAP-ENV:Envelope>
tests/test_sms.py
1
import lxml.etree as etree
2
import os
1 3
import pytest
4
import mock
5
from requests import Response
2 6

  
3 7
from django.contrib.contenttypes.models import ContentType
8
from django.core.files import File
9
from django.core.urlresolvers import reverse
4 10

  
11
from passerelle.apps.orange.models import OrangeSMSGateway
12
from passerelle.apps.orange.soap import ContactEveryoneSoap
5 13
from passerelle.base.models import ApiUser, AccessRight
6 14
from passerelle.sms import SMSGatewayMixin
7 15

  
......
43 51
    return c
44 52

  
45 53

  
54
@pytest.fixture
55
def orange_conn():
56
    api = ApiUser.objects.create(username='api', keytype='API', key='xxxx')
57
    key_file = os.path.join(os.path.dirname(__file__), '../passerelle/apps/orange/orange.pem')
58
    conn = OrangeSMSGateway.objects.create(
59
        title='test',
60
        slug='test',
61
        keystore=File(open(key_file, 'r'), 'private-key.pem')
62
    )
63
    obj_type = ContentType.objects.get_for_model(OrangeSMSGateway)
64
    AccessRight.objects.create(
65
        codename='can_send_messages', apiuser=api,
66
        resource_type=obj_type, resource_pk=conn.pk)
67
    return conn
68

  
69

  
46 70
def test_connectors(app, connector):
47 71
    path = '/%s/%s/send/' % (connector.get_connector_slug(), connector.slug)
48 72
    result = app.post_json(path, params={})
......
71 95
    resp = app.get(url)
72 96
    assert 'Endpoints' in resp.body
73 97
    assert 'accessright/add' in resp.body
98

  
99

  
100
@mock.patch('passerelle.soap.requests.get')
101
@mock.patch('passerelle.soap.requests.post')
102
def test_orange_connector(mocked_post, mocked_get, app, orange_conn):
103

  
104
    def orange_mocked_get(url, params=None, **kwargs):
105
        assert url == ContactEveryoneSoap.WSDL_URL
106
        target_file = os.path.join(os.path.dirname(__file__), 'data', 'orange.wsdl')
107
        response = Response()
108
        response._content=file(target_file).read()
109
        response.status_code = 200
110
        return response
111

  
112
    def orange_mocked_post(url, params=None, **kwargs):
113
        xml_sent_expeted = os.path.join(
114
            os.path.dirname(__file__), 'data', 'orange_sendAdvancedMessage_query.xml')
115
        xml1 = etree.parse(xml_sent_expeted)
116
        xml2 = etree.fromstring(kwargs['data'])
117
        if (url not in ContactEveryoneSoap.WSDL_URL
118
            or etree.tostring(xml1, pretty_print=True)
119
            != etree.tostring(xml2, pretty_print=True)):
120
            # expected value may be updated here
121
            #open('/tmp/orange.xml', 'w').write(etree.tostring(xml2, pretty_print=True))
122
            raise Exception('test fails into orange_mocked_post function')
123

  
124
        response = Response()
125
        response.status_code = 200
126
        response._content = """<?xml version="1.0" encoding="UTF-8"?>
127
    <SOAP-ENV:Envelope
128
      xmlns:ns0="MultiDiffusionWS"
129
      xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
130
      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
131
     <SOAP-ENV:Header/>
132
     <ns1:Body>
133
      <ns0:sendAdvancedMessageResponse>
134
       <ns0:sendAdvancedMessageReturn>
135
        <ns0:msgId>msg-123</ns0:msgId>
136
       </ns0:sendAdvancedMessageReturn>
137
      </ns0:sendAdvancedMessageResponse>
138
     </ns1:Body>
139
    </SOAP-ENV:Envelope>
140
    """
141
        return response
142

  
143
    url = reverse('generic-endpoint', kwargs={
144
        'connector': 'orange', 'endpoint': 'send', 'slug': orange_conn.slug})
145
    resp = app.post_json(url, params={}, status=403)
146
    url += '?apikey=%s' % 'xxxx'
147
    payload = {
148
        'message': 'hello',
149
        'from': '+33699999999',
150
        'to': ['+33688888888', '+33677777777'],
151
    }
152
    mocked_get.side_effect=orange_mocked_get
153
    mocked_post.side_effect=orange_mocked_post
154
    resp = app.post_json(url, params=payload)
155
    assert resp.json['err'] == 0
156
    assert resp.json['data']['msg_ids'] == ['msg-123']
74
-