vivaticket: PEP8ness (#30458)
This commit is contained in:
parent
f2e7add34b
commit
f581c082a8
|
@ -14,14 +14,12 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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()}
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue