toulouse-maelis: [functests] adding tests on capacities (#77634)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Nicolas Roche 2023-06-21 17:25:08 +02:00
parent 1257eea8d2
commit 37fcc2d65a
3 changed files with 149 additions and 0 deletions

View File

@ -525,6 +525,7 @@ def create_data2(request, conn, reference_year):
'rl1_num': data['RL1']['num'],
'rl2_num': data['RL2']['num'],
'bart_num': data['childList'][0]['num'],
'lisa_num': data['childList'][1]['num'],
'maggie_num': data['childList'][2]['num'],
'hugo_num': data['childList'][3]['num'],
'data': data,
@ -703,6 +704,20 @@ def get_loisirs_subscribe_info(con, data, year):
)
def get_loisirs_subscribe_info3(con, data, year):
return get_subscription_info(
'LOISIRS',
# Sigec made this loisirs activity available for functests
'Vitrail Fusing 1/2 Je Adultes',
'Inscription annuelle',
'Centre Culturel ALBAN MINVILLE',
con,
data['name_id'],
data['bart_num'],
year,
)
def get_extrasco_subscribe_info(con, data, year):
return get_subscription_info(
'EXTRASCO',
@ -745,6 +760,13 @@ def loisirs_subscribe_info2(conn, create_data2, reference_year):
return get_loisirs_subscribe_info(conn, create_data2, reference_year)
@pytest.fixture(scope='session')
def loisirs_subscribe_info3(conn, create_data2, reference_year):
unlink(conn, create_data2['name_id'])
link(conn, create_data2)
return get_loisirs_subscribe_info3(conn, create_data2, reference_year)
@pytest.fixture(scope='session')
def extrasco_subscribe_info(conn, create_data, reference_year):
unlink(conn, create_data['name_id'])
@ -759,6 +781,13 @@ def extrasco_subscribe_info2(conn, create_data, reference_year):
return get_extrasco_subscribe_info2(conn, create_data, reference_year)
@pytest.fixture(scope='session')
def extrasco_subscribe_info3(conn, create_data2, reference_year):
unlink(conn, create_data2['name_id'])
link(conn, create_data2)
return get_extrasco_subscribe_info2(conn, create_data2, reference_year)
@pytest.fixture(scope='session')
def perisco_subscribe_info(conn, create_data, reference_year):
'''This fixture is a configuration trick from Sigec

View File

@ -33,6 +33,7 @@ def test_catalog_general_loisirs(conn, update_data):
in labels
)
assert 'Promenade forêt enchantée, TEST promenade forêt enchantée, TERRITOIRE OUEST' in labels
assert 'Vitrail Fusing 1/2 Je Adultes, Inscription annuelle, Centre Culturel ALBAN MINVILLE' in labels
for item in resp.json()['data']:
if (
@ -197,3 +198,64 @@ def test_subscribe_to_basket(conn, create_data, loisirs_subscribe_info, referenc
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
@pytest.mark.xfail(run=False)
def test_global_capacity(conn, create_data2, loisirs_subscribe_info3, reference_year):
assert loisirs_subscribe_info3['info']['controlResult']['controlOK'] is True
unlink(conn, create_data2['name_id'])
link(conn, create_data2)
# subscribe Bart
url = conn + '/add-person-subscription?NameID=%s' % create_data2['name_id']
# url = conn + '/add-person-basket-subscription?NameID=%s' % create_data2['name_id']
payload = {
'person_id': create_data2['bart_num'],
'activity_id': loisirs_subscribe_info3['activity']['id'],
'unit_id': loisirs_subscribe_info3['unit']['id'],
'place_id': loisirs_subscribe_info3['place']['id'],
'start_date': loisirs_subscribe_info3['unit']['dateStart'][:10],
'end_date': loisirs_subscribe_info3['unit']['dateEnd'][:10],
}
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
# basket_id = resp.json()['data']['basket']['id']
# subscribe Lisa
payload['person_id'] = create_data2['lisa_num']
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
# subscribe Maggie
payload['person_id'] = create_data2['maggie_num']
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
# can't subscribe Huggo
payload['person_id'] = create_data2['hugo_num']
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 1
assert resp.json()['err_desc'] == ''
# check capacity on main catalog
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
for item in resp.json()['data']:
if item['activity']['libelle'] == 'PUBLIK Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-1':
import pdb
pdb.set_trace()
# # remove subscriptions
# 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

View File

@ -262,3 +262,61 @@ def test_subscribe_with_agenda(conn, create_data, extrasco_subscribe_info):
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
@pytest.mark.xfail(run=False)
def test_daily_capacity(conn, create_data2, extrasco_subscribe_info3):
assert extrasco_subscribe_info3['info']['controlResult']['controlOK'] is True
def subscribe(child):
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data2['name_id']
payload = {
'person_id': create_data2['%s_num' % child],
'activity_id': extrasco_subscribe_info3['activity']['id'],
'unit_id': extrasco_subscribe_info3['unit']['id'],
'place_id': extrasco_subscribe_info3['place']['id'],
'start_date': extrasco_subscribe_info3['unit']['dateStart'][:10],
'end_date': extrasco_subscribe_info3['unit']['dateEnd'][:10],
}
resp = requests.post(url, json=payload)
resp.raise_for_status()
assert resp.json()['err'] == 0
return resp.json()['data']['basket']['id']
def book(child, slot):
url = conn + '/update-activity-agenda/?NameID=%s' % create_data2['name_id']
payload = {
'person_id': create_data2['%s_num' % child],
'activity_id': extrasco_subscribe_info3['activity']['id'],
'start_date': extrasco_subscribe_info3['unit']['dateStart'][:10],
'end_date': extrasco_subscribe_info3['unit']['dateEnd'][:10],
'booking_list': [slot],
}
resp = requests.post(url, json=payload)
resp.raise_for_status()
return resp
# subscribe all family childs
basket_id = subscribe('bart')
for child in 'lisa', 'maggie', 'hugo':
assert subscribe(child) == basket_id
# book all childs on the same day
assert len(extrasco_subscribe_info3['info']['agenda']) > 0
assert not any(x['prefill'] for x in extrasco_subscribe_info3['info']['agenda'])
slots = [x['id'] for x in extrasco_subscribe_info3['info']['agenda'] if x['disabled'] is False]
for child in 'bart', 'lisa', 'maggie':
resp = book(child, slots[-1])
assert resp.json()['err'] == 0
assert resp.json()['updated'] is True
assert [x['booked'] for x in resp.json()['changes']] == [True]
resp = book('hugo', slots[-1])
assert resp.json()['err'] == 1
assert resp.json()['err_desc'] == 0
# # remove subscriptions
# 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