Projet

Général

Profil

0001-vivaticket-add-support-for-booking-end-datetime-3403.patch

Serghei Mihai, 17 juin 2019 09:29

Télécharger (4,34 ko)

Voir les différences:

Subject: [PATCH] vivaticket: add support for booking end datetime (#34031)

 passerelle/apps/vivaticket/models.py | 18 ++++++++++++------
 tests/test_vivaticket.py             |  8 +++++---
 2 files changed, 17 insertions(+), 9 deletions(-)
passerelle/apps/vivaticket/models.py
91 91
            "type": "string",
92 92
            "required": True
93 93
        },
94
        "datetime": {
95
            "description": "event datetime",
94
        "start_datetime": {
95
            "description": "event start datetime",
96
            "type": "string",
97
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$",
98
            "required": True
99
        },
100
        "end_datetime": {
101
            "description": "event end datetime",
96 102
            "type": "string",
97 103
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$",
98 104
            "required": True
......
258 264
    def book(self, request, post_data, nameid=None):
259 265
        booking = {
260 266
            'externalCode': post_data['id'],
261
            'startDateTime': post_data['datetime'],
262
            'endDateTime': post_data['datetime'],
267
            'startDateTime': post_data['start_datetime'],
268
            'endDateTime': post_data['end_datetime'],
263 269
            'comment': post_data.get('comment', ''),
264 270
            'contact': self.get_or_create_contact(post_data, nameid),
265 271
            'roomList': [{
......
267 273
                'roomCode': post_data['room'],
268 274
                'themeCode': post_data['theme'],
269 275
                'quantity': post_data['quantity'],
270
                'startDateTime': post_data['datetime'],
271
                'endDateTime': post_data['datetime']
276
                'startDateTime': post_data['start_datetime'],
277
                'endDateTime': post_data['end_datetime']
272 278
            }]
273 279
        }
274 280
        headers = {'X-Vivaticket-Form-URL': post_data['form_url']}
tests/test_vivaticket.py
307 307
    url = utils.generic_endpoint_url('vivaticket', 'book')
308 308
    payload = {'id': 'formid', 'email': 'foo@example.com'}
309 309
    response = app.post_json(url, params=payload, status=400)
310
    payload['datetime'] = '2019-01-15'
310
    payload['start_datetime'] = '2019-01-15'
311
    payload['end_datetime'] = '2019-01-15'
311 312
    payload['event'] = '01'
312 313
    payload['theme'] = '001'
313 314
    payload['room'] = 'v001'
......
316 317
    payload['form_url'] = "http://mysite.com/form/id/"
317 318
    response = app.post_json(url, params=payload, status=400)
318 319
    assert "does not match '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}$" in response.json['err_desc']
319
    payload['datetime'] = '2019-01-15T10:00'
320
    payload['start_datetime'] = '2019-01-15T10:00'
321
    payload['end_datetime'] = '2019-01-15T11:00'
320 322
    # first return the API key, then the result of the booking creation
321 323
    mocked_post.side_effect = [
322 324
        utils.FakedResponse(content=KEY_RESPONSE, status_code=200),
......
327 329
    assert mocked_post.call_args[1]['json']['Key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074'
328 330
    assert mocked_post.call_args[1]['json']['Booking']['externalCode'] == 'formid'
329 331
    assert mocked_post.call_args[1]['json']['Booking']['startDateTime'] == '2019-01-15T10:00'
330
    assert mocked_post.call_args[1]['json']['Booking']['endDateTime'] == '2019-01-15T10:00'
332
    assert mocked_post.call_args[1]['json']['Booking']['endDateTime'] == '2019-01-15T11:00'
331 333
    assert mocked_post.call_args[1]['json']['Booking']['comment'] == 'My comment'
332 334
    assert mocked_post.call_args[1]['json']['Booking']['contact'] == {'InternalCode': '0000000273'}
333 335
    assert mocked_post.call_args[1]['headers'] == {'X-Vivaticket-Form-URL': 'http://mysite.com/form/id/'}
334
-