From b55722f110febee991a6856e5e5e60840e39811c Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 8 Feb 2019 06:37:26 +0100 Subject: [PATCH 01/13] vivaticket: PEP8ness (#30458) --- passerelle/apps/vivaticket/models.py | 41 ++++++++++++++++------------ tests/test_vivaticket.py | 20 +++++++++----- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/passerelle/apps/vivaticket/models.py b/passerelle/apps/vivaticket/models.py index 0fa0fd2..462417d 100644 --- a/passerelle/apps/vivaticket/models.py +++ b/passerelle/apps/vivaticket/models.py @@ -14,14 +14,12 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import json import hashlib import urlparse from django.core.cache import cache from django.db import models from django.utils.translation import ugettext_lazy as _ -from django.utils.text import slugify from passerelle.base.models import BaseResource from passerelle.utils.api import endpoint @@ -102,7 +100,7 @@ class VivaTicket(BaseResource): raise APIError(response.content) api_key = response.json()['Key'] # api key is available for 30 minutes - cache.set(cache_key_name, api_key, 60*30) + cache.set(cache_key_name, api_key, 60 * 30) return api_key def get(self, endpoint, **kwargs): @@ -174,21 +172,28 @@ class VivaTicket(BaseResource): return {'InternalCode': response.json()['InternalCode']} @endpoint(perm='can_access', description=_('Book an event'), - post={'description': _('Creates a booking for an event'), - 'request_body': { - 'schema': {'application/json': EVENTBOOK_SCHEMA} - } - }) + post={ + 'description': _('Creates a booking for an event'), + 'request_body': { + 'schema': { + 'application/json': EVENTBOOK_SCHEMA + } + } + }) def book(self, request, post_data, nameid=None): - booking = {'externalCode': post_data['id'], 'startDateTime': post_data['datetime'], - 'endDateTime': post_data['datetime'], - 'contact': self.get_or_create_contact(post_data['email'], nameid), - 'roomList': [{'eventCategoryCode': post_data['event'], - 'roomCode': post_data['room'], - 'themeCode': post_data['theme'], - 'quantity': post_data['quantity'], - 'startDateTime': post_data['datetime'], - 'endDateTime': post_data['datetime']}] - } + booking = { + 'externalCode': post_data['id'], + 'startDateTime': post_data['datetime'], + 'endDateTime': post_data['datetime'], + 'contact': self.get_or_create_contact(post_data['email'], nameid), + 'roomList': [{ + 'eventCategoryCode': post_data['event'], + 'roomCode': post_data['room'], + 'themeCode': post_data['theme'], + 'quantity': post_data['quantity'], + 'startDateTime': post_data['datetime'], + 'endDateTime': post_data['datetime'] + }] + } r = self.post('Booking/Post', {'Booking': booking}) return {'data': r.json()} diff --git a/tests/test_vivaticket.py b/tests/test_vivaticket.py index c3664cb..506c0a3 100644 --- a/tests/test_vivaticket.py +++ b/tests/test_vivaticket.py @@ -200,15 +200,16 @@ def connector(db): slug='test', login='foo', password='bar', url='http://example.net/vivaticket')) + @mock.patch('passerelle.utils.Request.post') def test_get_api_key(mocked_post, app, connector): - with pytest.raises(APIError) as excinfo: + with pytest.raises(APIError): mocked_post.return_value = utils.FakedResponse(content=ERROR_RESPONSE, ok=False) connector.get_apikey() mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, ok=True) connector.get_apikey() assert mocked_post.call_count == 2 - assert "Connect/PostConnect" in mocked_post.call_args[0][0] + assert "Connect/PostConnect" in mocked_post.call_args[0][0] assert mocked_post.call_args[1]['json']['Login'] == 'foo' assert mocked_post.call_args[1]['json']['Password'] == 'bar' # make sure the key from cache is used @@ -228,12 +229,13 @@ def test_get_events(mocked_get, app, connector): assert 'id' in item assert 'text' in item + @mock.patch('passerelle.utils.Request.post') @mock.patch('passerelle.utils.Request.get') def test_get_events_with_expired_key(mocked_get, mocked_post, app, connector): mocked_get.return_value = utils.FakedResponse(content=EVENTS_RESPONSE, status_code=401) mocked_post.return_value = utils.FakedResponse(content=KEY_RESPONSE, status_code=200) - result = utils.endpoint_get('/vivaticket/test/events', app, connector, 'events') + utils.endpoint_get('/vivaticket/test/events', app, connector, 'events') assert mocked_post.call_count == 1 @@ -249,6 +251,7 @@ def test_get_rooms(mocked_get, app, connector): result = utils.endpoint_get('/vivaticket/test/rooms', app, connector, 'rooms', params={'event': '02'}) assert mocked_get.call_args[1]['params']['eventCategory'] == '02' + @mock.patch('passerelle.utils.Request.get') def test_get_themes(mocked_get, app, connector): mocked_get.return_value = utils.FakedResponse(content=ROOMS_RESPONSE, status_code=200) @@ -268,8 +271,9 @@ def test_get_or_create_contact(mocked_get, mocked_post, app, connector): mocked_get.return_value = utils.FakedResponse(content=CONTACT_RESPONSE, ok=True) assert connector.get_or_create_contact('foo@example.com') == {'InternalCode': '0000000273'} mocked_get.return_value = utils.FakedResponse(content=CONTACT_RESPONSE, ok=False) - mocked_post.return_value = utils.FakedResponse(content='{"InternalCode": "0000000277", "ReturnCode": 0, "Error": null}', - status_code=200) + mocked_post.return_value = utils.FakedResponse( + content='{"InternalCode": "0000000277", "ReturnCode": 0, "Error": null}', + status_code=200) connector.get_or_create_contact('foo@example.com') assert mocked_post.call_args[1]['json']['Key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074' assert mocked_post.call_args[1]['json']['Contact']['Email'] == 'foo@example.com' @@ -281,13 +285,15 @@ def test_get_or_create_contact(mocked_get, mocked_post, app, connector): def test_get_and_update_contact(mocked_get, mocked_put, app, connector): mocked_get.return_value = utils.FakedResponse(content=CONTACT_RESPONSE, ok=True) assert connector.get_or_create_contact('foo@example.com') == {'InternalCode': '0000000273'} - mocked_put.return_value = utils.FakedResponse(content='{"InternalCode": "0000000277", "ReturnCode": 0, "Error": null}', - status_code=200) + mocked_put.return_value = utils.FakedResponse( + content='{"InternalCode": "0000000277", "ReturnCode": 0, "Error": null}', + status_code=200) connector.get_or_create_contact('bar@example.com', 'bar') assert mocked_put.call_args[1]['params']['id'] == '0000000273' assert mocked_put.call_args[1]['json']['Key'] == '86569D0CA1B1CBEF8D77DD5BDC9F5CBAE5C99074' assert mocked_put.call_args[1]['json']['Contact']['Email'] == 'bar@example.com' + @mock.patch('passerelle.utils.Request.post') @mock.patch('passerelle.utils.Request.get') def test_book(mocked_get, mocked_post, app, connector): -- 2.20.1