166 lines
6.1 KiB
Python
166 lines
6.1 KiB
Python
import datetime
|
|
|
|
import pytest
|
|
import requests
|
|
|
|
from .conftest import link, unlink
|
|
|
|
# LOISIR is like EXTRACO (most tests are redondants) but :
|
|
# * there is no calendar (days) to provide.
|
|
# * there is a general catalog to display
|
|
|
|
|
|
@pytest.mark.xfail(run=False)
|
|
def test_catalog_general_loisirs(conn, update_data):
|
|
unlink(conn, update_data['name_id'])
|
|
link(conn, update_data)
|
|
url = conn + '/read-activity-list'
|
|
params = {'ref_date': datetime.date.today().strftime('%Y-%m-%d')}
|
|
|
|
resp = requests.get(url, params=params)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
labels = [x['text'] for x in resp.json()['data']]
|
|
assert (
|
|
'TEST ECOLE DES SPORTS 22/23 SEMESTRE 2 - MULTIACTIVITES, MERCREDI - 13h45/17h - 8/15Ans, ARGOULETS'
|
|
in labels
|
|
)
|
|
assert (
|
|
'TEST ECOLE DES SPORTS 22/23 SEMESTRE 2 - MULTIACTIVITES, MERCREDI - 14h/16h30 - 10/15Ans, LA RAMEE'
|
|
in labels
|
|
)
|
|
assert (
|
|
'TEST ECOLE DES SPORTS 22/23 SEMESTRE 2 - MULTIACTIVITES, MERCREDI - 15h30/17h - 8/15Ans, ARGOULETS'
|
|
in labels
|
|
)
|
|
assert 'TEST Promenade forêt enchantée, TEST Promenade forêt enchantée, TERRITOIRE OUEST' in labels
|
|
assert (
|
|
'TEST Promenade lac de plaisance du T., TEST Promenade lac de plaisance du T., TERRITOIRE OUEST'
|
|
in labels
|
|
)
|
|
|
|
|
|
@pytest.mark.xfail(run=False)
|
|
def test_catalog_personnalise_loisirs(loisirs_subscribe_info):
|
|
assert (
|
|
loisirs_subscribe_info['info']['activity']['libelle1']
|
|
== 'TEST ECOLE DES SPORTS 22/23 SEMESTRE 2 - MULTIACTIVITES'
|
|
)
|
|
assert loisirs_subscribe_info['info']['calendarGeneration']['code'] == 'FORBIDDEN'
|
|
assert loisirs_subscribe_info['info']['billingInformation'] == {
|
|
'modeFact': 'FORFAIT',
|
|
'quantity': 1.0,
|
|
'unitPrice': 150.0,
|
|
}
|
|
|
|
|
|
@pytest.mark.xfail(run=False)
|
|
def test_direct_subscribe(conn, create_data, loisirs_subscribe_info, reference_year):
|
|
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
|
|
|
url = conn + '/add-person-subscription?NameID=%s' % create_data['name_id']
|
|
payload = {
|
|
'person_id': create_data['hugo_num'],
|
|
'activity_id': loisirs_subscribe_info['activity']['id'],
|
|
'unit_id': loisirs_subscribe_info['unit']['id'],
|
|
'place_id': loisirs_subscribe_info['place']['id'],
|
|
'start_date': '%s-09-01' % reference_year,
|
|
'end_date': '%s-08-31' % (reference_year + 1),
|
|
}
|
|
resp = requests.post(url, json=payload)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
|
|
# no idIns provided to remove subscription later
|
|
assert resp.json()['data'] == {'controlOK': True, 'message': None}
|
|
|
|
|
|
@pytest.mark.xfail(run=False)
|
|
def test_subscribe_with_conveyance(conn, create_data, loisirs_subscribe_info, reference_year):
|
|
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
|
|
|
assert loisirs_subscribe_info['info']['conveyance'] is not None
|
|
morning = [
|
|
x['id'] for x in loisirs_subscribe_info['info']['conveyance']['morningJourney']['depositPlaceList']
|
|
]
|
|
afternoon = [
|
|
x['id'] for x in loisirs_subscribe_info['info']['conveyance']['afternoonJourney']['depositPlaceList']
|
|
]
|
|
assert len(morning) > 0
|
|
assert len(afternoon) > 0
|
|
|
|
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data['name_id']
|
|
payload = {
|
|
'person_id': create_data['bart_num'],
|
|
'activity_id': loisirs_subscribe_info['activity']['id'],
|
|
'unit_id': loisirs_subscribe_info['unit']['id'],
|
|
'place_id': loisirs_subscribe_info['place']['id'],
|
|
'start_date': '%s-09-01' % reference_year,
|
|
'end_date': '%s-08-31' % (reference_year + 1),
|
|
'conveyanceSubscribe/idPlaceMorning': morning[0],
|
|
'conveyanceSubscribe/idPlaceAfternoon': afternoon[0],
|
|
}
|
|
resp = requests.post(url, json=payload)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
basket_id = resp.json()['data']['basket']['id']
|
|
|
|
# remove subscription
|
|
url = conn + '/delete-basket?NameID=%s' % create_data['name_id']
|
|
payload = {'basket_id': basket_id}
|
|
resp = requests.post(url, json=payload)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
|
|
|
|
@pytest.mark.xfail(run=False)
|
|
def test_subscribe_with_recurrent_week(conn, create_data, loisirs_subscribe_info, reference_year):
|
|
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
|
assert [(x['id'], x['day']) for x in loisirs_subscribe_info['info']['recurrent_week']] == [
|
|
('1-C', 'Lundi'),
|
|
('1-B', 'Lundi'),
|
|
('2-C', 'Mardi'),
|
|
('2-B', 'Mardi'),
|
|
('3-C', 'Mercredi'),
|
|
('3-B', 'Mercredi'),
|
|
('4-C', 'Jeudi'),
|
|
('4-B', 'Jeudi'),
|
|
('5-C', 'Vendredi'),
|
|
('5-B', 'Vendredi'),
|
|
]
|
|
|
|
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data['name_id']
|
|
payload = {
|
|
'person_id': create_data['bart_num'],
|
|
'activity_id': loisirs_subscribe_info['activity']['id'],
|
|
'unit_id': loisirs_subscribe_info['unit']['id'],
|
|
'place_id': loisirs_subscribe_info['place']['id'],
|
|
'start_date': '%s-09-01' % reference_year,
|
|
'end_date': '%s-08-31' % (reference_year + 1),
|
|
'recurrent_week': ['1-B', '2-C'],
|
|
}
|
|
resp = requests.post(url, json=payload)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
basket_id = resp.json()['data']['basket']['id']
|
|
|
|
# there is now some bookings
|
|
url = conn + '/read-activity-agenda?NameID=%s' % create_data['name_id']
|
|
params = {
|
|
'person_id': create_data['bart_num'],
|
|
'activity_id': loisirs_subscribe_info['activity']['id'],
|
|
'start_date': '%s-09-01' % reference_year,
|
|
'end_date': '%s-08-31' % (reference_year + 1),
|
|
}
|
|
resp = requests.get(url, params=params)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|
|
assert any(x['prefill'] for x in resp.json()['data'])
|
|
|
|
# remove subscription
|
|
url = conn + '/delete-basket?NameID=%s' % create_data['name_id']
|
|
payload = {'basket_id': basket_id}
|
|
resp = requests.post(url, json=payload)
|
|
resp.raise_for_status()
|
|
assert resp.json()['err'] == 0
|