vivaticket: add func tests (#29890)
This commit is contained in:
parent
ef7850a5dd
commit
a57cb9e615
|
@ -0,0 +1,20 @@
|
||||||
|
Functional tests for the passerelle Vivaticket connector
|
||||||
|
|
||||||
|
Description
|
||||||
|
===========
|
||||||
|
|
||||||
|
This test suite will use the web API of a passerelle Vivaticket connector
|
||||||
|
to list available events, rooms, theme and create a booking.
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
You will need a running passerelle instance, with a Vivaticket connector instance configured.
|
||||||
|
Suppose that the Vivaticket connector instance is listening here :
|
||||||
|
|
||||||
|
http://127.0.0.1:8000/vivaticket/test
|
||||||
|
|
||||||
|
Then you would start the test suite with the following command:
|
||||||
|
|
||||||
|
$ py.test -s --url=http://127.0.0.1:8000/vivaticket/test test_vivaticket.py
|
|
@ -0,0 +1,11 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
def pytest_addoption(parser):
|
||||||
|
parser.addoption(
|
||||||
|
"--url", help="Url of a passerelle Vivaticket connector instance")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def conn(request):
|
||||||
|
return request.config.getoption("--url")
|
|
@ -0,0 +1,51 @@
|
||||||
|
import pprint
|
||||||
|
import datetime
|
||||||
|
import requests
|
||||||
|
import random
|
||||||
|
|
||||||
|
def call_generic(conn, endpoint):
|
||||||
|
print("%s \n" % endpoint)
|
||||||
|
url = conn + '/%s' % endpoint
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
res = resp.json()
|
||||||
|
assert res['err'] == 0
|
||||||
|
data = res['data']
|
||||||
|
print('%s \n' % endpoint)
|
||||||
|
pprint.pprint(data)
|
||||||
|
print('\n')
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_events(conn):
|
||||||
|
call_generic(conn, 'events')
|
||||||
|
|
||||||
|
def test_get_rooms(conn):
|
||||||
|
call_generic(conn, 'rooms')
|
||||||
|
|
||||||
|
def test_get_themes(conn):
|
||||||
|
call_generic(conn, 'themes')
|
||||||
|
|
||||||
|
def test_book_event(conn):
|
||||||
|
url = conn + '/book'
|
||||||
|
payload = {'id': 'formid', 'email': 'foo@example.com',
|
||||||
|
'datetime': datetime.datetime.now().strftime('%Y-%m-%dT%H:%M'),
|
||||||
|
'room': '001', 'theme': 'A0001', 'quantity': 1
|
||||||
|
}
|
||||||
|
events = call_generic(conn, 'events')
|
||||||
|
random.shuffle(events)
|
||||||
|
payload['event'] = events[0]['id']
|
||||||
|
rooms = call_generic(conn, 'rooms')
|
||||||
|
random.shuffle(rooms)
|
||||||
|
payload['room'] = rooms[0]['id']
|
||||||
|
themes = call_generic(conn, 'themes')
|
||||||
|
random.shuffle(themes)
|
||||||
|
payload['theme'] = themes[0]['id']
|
||||||
|
print "Creating booking with the following payload:\n%s" % payload
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
res = resp.json()
|
||||||
|
assert res['err'] == 0
|
||||||
|
data = res['data']
|
||||||
|
pprint.pprint(data)
|
||||||
|
print('\n')
|
Loading…
Reference in New Issue