passerelle/functests/planitech/test_planitech.py

143 lines
3.8 KiB
Python
Raw Normal View History

import pprint
2018-11-09 16:36:24 +01:00
import random
2020-01-13 17:52:24 +01:00
from django.utils.six.moves.urllib import parse
2018-11-09 16:36:24 +01:00
import requests
def test_main(conn):
# get days
2021-02-20 16:26:01 +01:00
query_string = parse.urlencode(
{'start_days': 1, 'end_days': 90, 'start_time': '10:00', 'end_time': '11:00', 'display': 'date'}
)
url = conn + '/getfreegaps?%s' % query_string
2018-11-09 16:36:24 +01:00
resp = requests.get(url)
resp.raise_for_status()
res = resp.json()
assert res['err'] == 0
data = res['data']
assert data
# get places
2021-02-20 16:26:01 +01:00
query_string = parse.urlencode(
{'start_days': 1, 'end_days': 90, 'start_time': '10:00', 'end_time': '11:00', 'display': 'place'}
)
url = conn + '/getfreegaps?%s' % query_string
2018-11-09 16:36:24 +01:00
resp = requests.get(url)
resp.raise_for_status()
res = resp.json()
assert res['err'] == 0
data = res['data']
assert data
place = data[random.randint(0, len(data) - 1)]['id']
# get days on one place
2021-02-20 16:26:01 +01:00
query_string = parse.urlencode(
{
'start_days': 1,
'end_days': 90,
'start_time': '10:00',
'end_time': '11:00',
'place_id': place,
'display': 'date',
}
)
url = conn + '/getfreegaps?%s' % query_string
resp = requests.get(url)
resp.raise_for_status()
res = resp.json()
assert res['err'] == 0
data = res['data']
assert data
activities = call_generic(conn, 'getactivities')
activity_id = activities[random.randint(0, len(activities) - 1)]['identifier']
resa_types = call_generic(conn, 'getreservationtypes')
resa_type_id = resa_types[random.randint(0, len(resa_types) - 1)]['identifier']
chosen_date = data[0]['id']
2018-11-09 16:36:24 +01:00
# create reservation
params = {
2021-02-20 16:26:01 +01:00
'date': chosen_date,
'start_time': '10:00',
'end_time': '11:00',
'place_id': place,
'price': 200,
'name_id': 'john-doe',
'type_id': resa_type_id,
'first_name': 'jon',
'last_name': 'doe',
'activity_id': activity_id,
'email': 'jon.doe@localhost',
'object': 'reservation object',
'vat_rate': 200,
2018-11-09 16:36:24 +01:00
}
print('Create reservation parameters \n')
pprint.pprint(params)
print('\n')
2018-11-09 16:36:24 +01:00
url = conn + '/createreservation'
resp = requests.post(url, json=params)
resp.raise_for_status()
res = resp.json()
print('Create reservation response \n')
pprint.pprint(res)
print('\n')
2018-11-09 16:36:24 +01:00
assert res['err'] == 0
data = res['data']
assert 'reservation_id' in data
reservation_id = data['reservation_id']
# confirm reservation
2021-02-20 16:26:01 +01:00
params = {'reservation_id': reservation_id, 'status': 'standard'}
2018-11-09 16:36:24 +01:00
url = conn + '/updatereservation'
resp = requests.post(url, json=params)
resp.raise_for_status()
res = resp.json()
assert res['err'] == 0
data = res['data']
assert data
# FORBIDDEN BY PLANITECH - NO RESERVATION CANCELATION ?
# cancel reservation
# params = {
# 'reservation_id': reservation_id, 'status': 'invalid'
# }
# url = conn + '/updatereservation'
# resp = requests.post(url, json=params)
# resp.raise_for_status()
# res = resp.json()
# assert res['err'] == 0
# data = res['data']
# assert data
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_getusers(conn):
call_generic(conn, 'getusers')
def test_getactivities(conn):
call_generic(conn, 'getactivities')
def test_getactivitytyes(conn):
call_generic(conn, 'getactivitytypes')
def test_getreservationtypes(conn):
call_generic(conn, 'getreservationtypes')