toulouse-maelis: [functests] update invoice test on extrasco (#77634)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
0b3d06e932
commit
0d1044503c
|
@ -707,8 +707,8 @@ def get_extrasco_subscribe_info(con, data, year):
|
||||||
return get_subscription_info(
|
return get_subscription_info(
|
||||||
'EXTRASCO',
|
'EXTRASCO',
|
||||||
# Sigec made this extra-sco activity available for functests
|
# Sigec made this extra-sco activity available for functests
|
||||||
'TEST ADL ELEMENTAIRE Maourine Juin',
|
'ADL ELEMENTAIRE Maourine Juin',
|
||||||
'TEST ADL ELEMENTAIRE Maourine FEVRIER 22/23',
|
'PUBLIK ADL ELEMENTAIRE Maourine JUIN 22/23(NE PAS UTILISER)',
|
||||||
'MAOURINE (la) ELEMENTAIRE',
|
'MAOURINE (la) ELEMENTAIRE',
|
||||||
con,
|
con,
|
||||||
data['name_id'],
|
data['name_id'],
|
||||||
|
@ -717,6 +717,20 @@ def get_extrasco_subscribe_info(con, data, year):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_extrasco_subscribe_info2(con, data, year):
|
||||||
|
return get_subscription_info(
|
||||||
|
'EXTRASCO',
|
||||||
|
# Sigec made this extra-sco activity available for functests
|
||||||
|
'ADL MATERNELLE Lardenne Juin',
|
||||||
|
'PUBLIK ADL MATER JOURNEE AVEC REPAS',
|
||||||
|
'LARDENNE MATERNELLE',
|
||||||
|
con,
|
||||||
|
data['name_id'],
|
||||||
|
data['bart_num'],
|
||||||
|
year,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
def loisirs_subscribe_info(conn, create_data, reference_year):
|
def loisirs_subscribe_info(conn, create_data, reference_year):
|
||||||
unlink(conn, create_data['name_id'])
|
unlink(conn, create_data['name_id'])
|
||||||
|
@ -738,6 +752,13 @@ def extrasco_subscribe_info(conn, create_data, reference_year):
|
||||||
return get_extrasco_subscribe_info(conn, create_data, reference_year)
|
return get_extrasco_subscribe_info(conn, create_data, reference_year)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def extrasco_subscribe_info2(conn, create_data, reference_year):
|
||||||
|
unlink(conn, create_data['name_id'])
|
||||||
|
link(conn, create_data)
|
||||||
|
return get_extrasco_subscribe_info2(conn, create_data, reference_year)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
def perisco_subscribe_info(conn, create_data, reference_year):
|
def perisco_subscribe_info(conn, create_data, reference_year):
|
||||||
'''This fixture is a configuration trick from Sigec
|
'''This fixture is a configuration trick from Sigec
|
||||||
|
|
|
@ -2,21 +2,32 @@ import pytest
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail(run=False)
|
|
||||||
def test_catalog_personnalise_extrasco(extrasco_subscribe_info):
|
def test_catalog_personnalise_extrasco(extrasco_subscribe_info):
|
||||||
assert (
|
assert (
|
||||||
extrasco_subscribe_info['info']['activity']['libelle1']
|
extrasco_subscribe_info['info']['activity']['libelle1']
|
||||||
== 'TEST ADL ELEMENTAIRE Maourine FEVRIER 22/23'
|
== 'PUBLIK ADL ELEMENTAIRE Maourine JUIN 22/23(NE PAS UTILISER)'
|
||||||
)
|
)
|
||||||
assert extrasco_subscribe_info['info']['calendarGeneration']['code'] == 'REQUIRED'
|
assert extrasco_subscribe_info['info']['calendarGeneration']['code'] == 'REQUIRED'
|
||||||
assert extrasco_subscribe_info['info']['billingInformation'] == {
|
assert extrasco_subscribe_info['info']['billingInformation'] == {
|
||||||
'modeFact': 'PRESENCE',
|
'modeFact': 'PRESENCE',
|
||||||
'quantity': None,
|
'quantity': None,
|
||||||
'unitPrice': 43.0,
|
'unitPrice': 11.5,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_catalog_personnalise_extrasco2(extrasco_subscribe_info2):
|
||||||
|
assert (
|
||||||
|
extrasco_subscribe_info2['info']['activity']['libelle1']
|
||||||
|
== 'PUBLIK ADL MATERNELLE Lardenne JUIN 22/23 (NEPAS UTILISER)'
|
||||||
|
)
|
||||||
|
assert extrasco_subscribe_info2['info']['calendarGeneration']['code'] == 'FORBIDDEN'
|
||||||
|
assert extrasco_subscribe_info2['info']['billingInformation'] == {
|
||||||
|
'modeFact': 'PRESENCE',
|
||||||
|
'quantity': None,
|
||||||
|
'unitPrice': 11.5,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail(run=False)
|
|
||||||
def test_direct_subscribe(conn, create_data, extrasco_subscribe_info, reference_year):
|
def test_direct_subscribe(conn, create_data, extrasco_subscribe_info, reference_year):
|
||||||
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
|
@ -74,20 +85,14 @@ def test_subscribe_with_conveyance(conn, create_data, extrasco_subscribe_info):
|
||||||
assert resp.json()['err'] == 0
|
assert resp.json()['err'] == 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail(run=False)
|
|
||||||
def test_subscribe_with_recurrent_week(conn, create_data, extrasco_subscribe_info):
|
def test_subscribe_with_recurrent_week(conn, create_data, extrasco_subscribe_info):
|
||||||
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
assert [(x['id'], x['day']) for x in extrasco_subscribe_info['info']['recurrent_week']] == [
|
assert [(x['id'], x['day']) for x in extrasco_subscribe_info['info']['recurrent_week']] == [
|
||||||
('1-C', 'Lundi'),
|
('1-X', 'Lundi'),
|
||||||
('1-B', 'Lundi'),
|
('2-X', 'Mardi'),
|
||||||
('2-C', 'Mardi'),
|
('3-X', 'Mercredi'),
|
||||||
('2-B', 'Mardi'),
|
('4-X', 'Jeudi'),
|
||||||
('3-C', 'Mercredi'),
|
('5-X', 'Vendredi'),
|
||||||
('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']
|
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data['name_id']
|
||||||
|
@ -98,7 +103,7 @@ def test_subscribe_with_recurrent_week(conn, create_data, extrasco_subscribe_inf
|
||||||
'place_id': extrasco_subscribe_info['place']['id'],
|
'place_id': extrasco_subscribe_info['place']['id'],
|
||||||
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
||||||
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
||||||
'recurrent_week': ['1-B', '2-C'],
|
'recurrent_week': ['1-X', '2-X'],
|
||||||
}
|
}
|
||||||
resp = requests.post(url, json=payload)
|
resp = requests.post(url, json=payload)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
|
@ -134,7 +139,6 @@ def test_subscribe_with_recurrent_week(conn, create_data, extrasco_subscribe_inf
|
||||||
assert resp.json()['err'] == 0
|
assert resp.json()['err'] == 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail(run=False)
|
|
||||||
def test_subscribe_with_agenda(conn, create_data, extrasco_subscribe_info):
|
def test_subscribe_with_agenda(conn, create_data, extrasco_subscribe_info):
|
||||||
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,7 @@ import pytest
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.xfail(run=False)
|
def test_basket_subscribe_extrasco(conn, create_data, extrasco_subscribe_info, reference_year):
|
||||||
def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_year):
|
|
||||||
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
def get_baskets():
|
def get_baskets():
|
||||||
|
@ -66,7 +65,7 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
assert data['basket']['codeRegie'] == 105
|
assert data['basket']['codeRegie'] == 105
|
||||||
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 1
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 1
|
||||||
assert len({x['idIns'] for x in data['basket']['lignes']}) == 3
|
assert len({x['idIns'] for x in data['basket']['lignes']}) == 1 # 3 sur Larden
|
||||||
|
|
||||||
assert len(subscriptions(create_data['bart_num'])) == 1
|
assert len(subscriptions(create_data['bart_num'])) == 1
|
||||||
assert subscriptions(create_data['maggie_num']) == []
|
assert subscriptions(create_data['maggie_num']) == []
|
||||||
|
@ -75,12 +74,12 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
data = get_baskets()
|
data = get_baskets()
|
||||||
assert len(data) == 1
|
assert len(data) == 1
|
||||||
assert data[0]['codeRegie'] == 105
|
assert data[0]['codeRegie'] == 105
|
||||||
assert data[0]['text'] == 'ENFANCE LOISIRS ET PE'
|
assert data[0]['text'] == 'ENFANCE LOISIRS'
|
||||||
assert len(data[0]['lignes']) == 3
|
assert len(data[0]['lignes']) == 1 # 3 sur Larden
|
||||||
assert len({x['personneInfo']['numPerson'] for x in data[0]['lignes']}) == 1
|
assert len({x['personneInfo']['numPerson'] for x in data[0]['lignes']}) == 1
|
||||||
|
|
||||||
# get 3 idIns because we subscribe a generic unit
|
# get 3 idIns because we subscribe a generic unit
|
||||||
assert len({x['idIns'] for x in data[0]['lignes']}) == 3
|
assert len({x['idIns'] for x in data[0]['lignes']}) == 1 # 3 sur Larden
|
||||||
basket_id = data[0]['id']
|
basket_id = data[0]['id']
|
||||||
|
|
||||||
# cannot subscribe Bart twice
|
# cannot subscribe Bart twice
|
||||||
|
@ -119,7 +118,7 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
# delete (generic) basket line for Bart
|
# delete (generic) basket line for Bart
|
||||||
data = get_baskets()
|
data = get_baskets()
|
||||||
assert len(data) == 1
|
assert len(data) == 1
|
||||||
assert len(data[0]['lignes']) == 6
|
assert len(data[0]['lignes']) == 2 # 6 sur Larden
|
||||||
basket_id = data[0]['id']
|
basket_id = data[0]['id']
|
||||||
# line for the generic unit for Bart
|
# line for the generic unit for Bart
|
||||||
line_id = [
|
line_id = [
|
||||||
|
@ -140,11 +139,11 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
data = resp.json()['data']
|
data = resp.json()['data']
|
||||||
assert data['codeRegie'] == 105
|
assert data['codeRegie'] == 105
|
||||||
assert len({x['personneInfo']['numPerson'] for x in data['lignes']}) == 1
|
assert len({x['personneInfo']['numPerson'] for x in data['lignes']}) == 1
|
||||||
assert len({x['idIns'] for x in data['lignes']}) == 3
|
assert len({x['idIns'] for x in data['lignes']}) == 1 # 3 sur Larden
|
||||||
data = get_baskets()
|
data = get_baskets()
|
||||||
assert len(data) == 1
|
assert len(data) == 1
|
||||||
assert len(get_baskets()) == 1
|
assert len(get_baskets()) == 1
|
||||||
assert len(data[0]['lignes']) == 3
|
assert len(data[0]['lignes']) == 1 # 3 sur Larden
|
||||||
assert subscriptions(create_data['bart_num']) == []
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
assert len(subscriptions(create_data['maggie_num'])) == 1
|
assert len(subscriptions(create_data['maggie_num'])) == 1
|
||||||
|
|
||||||
|
@ -190,6 +189,207 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
||||||
assert len([x['prefill'] for x in get_bookings(create_data['maggie_num']) if x['prefill'] is True]) == 2
|
assert len([x['prefill'] for x in get_bookings(create_data['maggie_num']) if x['prefill'] is True]) == 2
|
||||||
|
|
||||||
|
# delete basket
|
||||||
|
# should be call by user or by cron job
|
||||||
|
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
|
||||||
|
assert resp.json()['data'] == 'ok'
|
||||||
|
assert get_baskets() == []
|
||||||
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.xfail(run=False)
|
||||||
|
def test_basket_subscribe_extrasco2(conn, create_data, extrasco_subscribe_info2, reference_year):
|
||||||
|
"""Subscribing to a generic unit"""
|
||||||
|
assert extrasco_subscribe_info2['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
|
def get_baskets():
|
||||||
|
url = conn + '/get-baskets?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
def subscribe(person_id):
|
||||||
|
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'activity_id': extrasco_subscribe_info2['activity']['id'],
|
||||||
|
'unit_id': extrasco_subscribe_info2['unit']['id'],
|
||||||
|
'place_id': extrasco_subscribe_info2['place']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info2['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info2['unit']['dateEnd'][:10],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
return resp
|
||||||
|
|
||||||
|
def subscriptions(person_id):
|
||||||
|
url = conn + '/read-subscribe-activity-list?NameID=%s' % create_data['name_id']
|
||||||
|
params = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'nature': 'EXTRASCO',
|
||||||
|
'school_year': '%s-%s' % (reference_year, reference_year + 1),
|
||||||
|
}
|
||||||
|
resp = requests.get(url, params=params)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
def get_bookings(person_id):
|
||||||
|
url = conn + '/read-activity-agenda?NameID=%s' % create_data['name_id']
|
||||||
|
params = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'activity_id': extrasco_subscribe_info2['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info2['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info2['unit']['dateEnd'][:10],
|
||||||
|
}
|
||||||
|
resp = requests.get(url, params=params)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
# no subscription
|
||||||
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
|
assert subscriptions(create_data['maggie_num']) == []
|
||||||
|
|
||||||
|
# empty basket
|
||||||
|
assert get_baskets() == []
|
||||||
|
|
||||||
|
# subscribe Bart
|
||||||
|
resp = subscribe(create_data['bart_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert data['basket']['codeRegie'] == 105
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 1
|
||||||
|
assert len({x['idIns'] for x in data['basket']['lignes']}) == 1 # 3 expected
|
||||||
|
|
||||||
|
assert len(subscriptions(create_data['bart_num'])) == 2 # redoundant
|
||||||
|
assert subscriptions(create_data['maggie_num']) == []
|
||||||
|
|
||||||
|
# basket
|
||||||
|
data = get_baskets()
|
||||||
|
assert len(data) == 1
|
||||||
|
assert data[0]['codeRegie'] == 105
|
||||||
|
assert data[0]['text'] == 'ENFANCE LOISIRS'
|
||||||
|
assert len(data[0]['lignes']) == 1 # 3 expected
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data[0]['lignes']}) == 1
|
||||||
|
|
||||||
|
# we should get 3 idIns because we subscribe a generic unit
|
||||||
|
assert len({x['idIns'] for x in data[0]['lignes']}) == 1 # 3 expected
|
||||||
|
basket_id = data[0]['id']
|
||||||
|
|
||||||
|
# cannot subscribe Bart twice
|
||||||
|
resp = subscribe(create_data['bart_num'])
|
||||||
|
assert resp.json()['err'] == 1
|
||||||
|
assert 'E1019' in resp.json()['err_desc']
|
||||||
|
assert len(get_baskets()) == 1
|
||||||
|
|
||||||
|
# delete basket
|
||||||
|
# should be call by user or by cron job
|
||||||
|
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
|
||||||
|
assert resp.json()['data'] == 'ok'
|
||||||
|
assert get_baskets() == []
|
||||||
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
|
|
||||||
|
# subscribe Bart
|
||||||
|
resp = subscribe(create_data['bart_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 1
|
||||||
|
assert len(subscriptions(create_data['bart_num'])) == 2
|
||||||
|
|
||||||
|
# subscribe Maggie
|
||||||
|
resp = subscribe(create_data['maggie_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 2
|
||||||
|
assert len(subscriptions(create_data['maggie_num'])) == 2
|
||||||
|
|
||||||
|
# delete (generic) basket line for Bart
|
||||||
|
data = get_baskets()
|
||||||
|
assert len(data) == 1
|
||||||
|
assert len(data[0]['lignes']) == 2 # 6 sur Larden
|
||||||
|
basket_id = data[0]['id']
|
||||||
|
# line for the generic unit for Bart
|
||||||
|
line_id = [
|
||||||
|
y['id']
|
||||||
|
for x in data
|
||||||
|
for y in x['lignes']
|
||||||
|
if y['personneInfo']['numPerson'] == int(create_data['bart_num'])
|
||||||
|
if y['inscription']['idUnit'] == extrasco_subscribe_info2['unit']['id']
|
||||||
|
][0]
|
||||||
|
url = conn + '/delete-basket-line?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'basket_id': basket_id,
|
||||||
|
'line_id': line_id,
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['codeRegie'] == 105
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['lignes']}) == 1
|
||||||
|
assert len({x['idIns'] for x in data['lignes']}) == 1 # 3 sur Larden
|
||||||
|
data = get_baskets()
|
||||||
|
assert len(data) == 1
|
||||||
|
assert len(get_baskets()) == 1
|
||||||
|
assert len(data[0]['lignes']) == 1 # 3 sur Larden
|
||||||
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
|
assert len(subscriptions(create_data['maggie_num'])) == 2
|
||||||
|
|
||||||
|
# re-subscribe Bart
|
||||||
|
resp = subscribe(create_data['bart_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 2
|
||||||
|
assert len(subscriptions(create_data['bart_num'])) == 2
|
||||||
|
|
||||||
|
# add bookings to Bart
|
||||||
|
slots = [x['id'] for x in extrasco_subscribe_info2['info']['agenda'] if x['disabled'] is False]
|
||||||
|
url = conn + '/update-activity-agenda/?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': create_data['bart_num'],
|
||||||
|
'activity_id': extrasco_subscribe_info2['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info2['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info2['unit']['dateEnd'][:10],
|
||||||
|
'booking_list': [slots[0], slots[-1]],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
assert resp.json()['updated'] is True
|
||||||
|
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
||||||
|
assert len([x['prefill'] for x in get_bookings(create_data['bart_num']) if x['prefill'] is True]) == 2
|
||||||
|
|
||||||
|
# add bookings to Maggie
|
||||||
|
slots = [':'.join([create_data['maggie_num']] + x.split(':')[1:]) for x in slots]
|
||||||
|
url = conn + '/update-activity-agenda/?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': create_data['maggie_num'],
|
||||||
|
'activity_id': extrasco_subscribe_info2['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info2['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info2['unit']['dateEnd'][:10],
|
||||||
|
'booking_list': [slots[0], slots[-1]],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
assert resp.json()['updated'] is True
|
||||||
|
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
||||||
|
assert len([x['prefill'] for x in get_bookings(create_data['maggie_num']) if x['prefill'] is True]) == 2
|
||||||
|
|
||||||
# validate basket
|
# validate basket
|
||||||
url = conn + '/validate-basket?NameID=%s' % create_data['name_id']
|
url = conn + '/validate-basket?NameID=%s' % create_data['name_id']
|
||||||
payload = {'basket_id': basket_id}
|
payload = {'basket_id': basket_id}
|
||||||
|
@ -197,15 +397,15 @@ def test_basket_subscribe(conn, create_data, extrasco_subscribe_info, reference_
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
assert resp.json()['err'] == 0
|
assert resp.json()['err'] == 0
|
||||||
data = resp.json()['data']
|
data = resp.json()['data']
|
||||||
assert len(data['idInsLst']) == 6
|
assert len(data['idInsLst']) == 2 # 6 sur Larden
|
||||||
assert len(data['factureLst']) == 0 # No invoice #2187
|
assert len(data['factureLst']) == 0 # No invoice #2187
|
||||||
assert get_baskets() == []
|
assert get_baskets() == []
|
||||||
|
|
||||||
assert len(subscriptions(create_data['bart_num'])) == 1
|
assert len(subscriptions(create_data['bart_num'])) == 2
|
||||||
assert len(subscriptions(create_data['maggie_num'])) == 1
|
assert len(subscriptions(create_data['maggie_num'])) == 2
|
||||||
|
|
||||||
|
|
||||||
def test_basket_subscribe_bis(conn, create_data, loisirs_subscribe_info, reference_year):
|
def test_basket_subscribe_loisirs(conn, create_data, loisirs_subscribe_info, reference_year):
|
||||||
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
def get_baskets():
|
def get_baskets():
|
||||||
|
|
|
@ -39,7 +39,7 @@ def test_direct_debit_order(conn, create_data):
|
||||||
assert diff(res['data'], 'test_get_rl1_direct_debit_order.json')
|
assert diff(res['data'], 'test_get_rl1_direct_debit_order.json')
|
||||||
|
|
||||||
|
|
||||||
def test_pay_invoice(conn, create_data, loisirs_subscribe_info, reference_year):
|
def test_pay_invoice_loisirs(conn, create_data, loisirs_subscribe_info, reference_year):
|
||||||
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
assert loisirs_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
def get_baskets():
|
def get_baskets():
|
||||||
|
@ -158,3 +158,191 @@ def test_pay_invoice(conn, create_data, loisirs_subscribe_info, reference_year):
|
||||||
assert len({x['idIns'] for x in data[0]['maelis_item']['lineInvoiceList']}) == 2
|
assert len({x['idIns'] for x in data[0]['maelis_item']['lineInvoiceList']}) == 2
|
||||||
assert data[0]['maelis_item']['idInvoice'] == invoice_id
|
assert data[0]['maelis_item']['idInvoice'] == invoice_id
|
||||||
assert data[0]['maelis_item']['numInvoice'] == invoice_num
|
assert data[0]['maelis_item']['numInvoice'] == invoice_num
|
||||||
|
|
||||||
|
|
||||||
|
def test_payinvoice_extrasco(conn, create_data, extrasco_subscribe_info, reference_year):
|
||||||
|
assert extrasco_subscribe_info['info']['controlResult']['controlOK'] is True
|
||||||
|
|
||||||
|
def get_baskets():
|
||||||
|
url = conn + '/get-baskets?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
def subscribe(person_id):
|
||||||
|
url = conn + '/add-person-basket-subscription?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'activity_id': extrasco_subscribe_info['activity']['id'],
|
||||||
|
'unit_id': extrasco_subscribe_info['unit']['id'],
|
||||||
|
'place_id': extrasco_subscribe_info['place']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
return resp
|
||||||
|
|
||||||
|
def subscriptions(person_id):
|
||||||
|
url = conn + '/read-subscribe-activity-list?NameID=%s' % create_data['name_id']
|
||||||
|
params = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'nature': 'EXTRASCO',
|
||||||
|
'school_year': '%s-%s' % (reference_year, reference_year + 1),
|
||||||
|
}
|
||||||
|
resp = requests.get(url, params=params)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
def get_bookings(person_id):
|
||||||
|
url = conn + '/read-activity-agenda?NameID=%s' % create_data['name_id']
|
||||||
|
params = {
|
||||||
|
'person_id': person_id,
|
||||||
|
'activity_id': extrasco_subscribe_info['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
||||||
|
}
|
||||||
|
resp = requests.get(url, params=params)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
return resp.json()['data']
|
||||||
|
|
||||||
|
# no subscription
|
||||||
|
assert subscriptions(create_data['bart_num']) == []
|
||||||
|
assert subscriptions(create_data['maggie_num']) == []
|
||||||
|
|
||||||
|
# empty basket
|
||||||
|
assert get_baskets() == []
|
||||||
|
|
||||||
|
# subscribe Bart
|
||||||
|
resp = subscribe(create_data['bart_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert data['basket']['codeRegie'] == 105
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 1
|
||||||
|
assert len({x['idIns'] for x in data['basket']['lignes']}) == 1
|
||||||
|
|
||||||
|
assert len(subscriptions(create_data['bart_num'])) == 1
|
||||||
|
assert subscriptions(create_data['maggie_num']) == []
|
||||||
|
|
||||||
|
# basket
|
||||||
|
data = get_baskets()
|
||||||
|
assert len(data) == 1
|
||||||
|
assert data[0]['codeRegie'] == 105
|
||||||
|
assert len(data[0]['lignes']) == 1
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data[0]['lignes']}) == 1
|
||||||
|
|
||||||
|
assert len({x['idIns'] for x in data[0]['lignes']}) == 1
|
||||||
|
basket_id = data[0]['id']
|
||||||
|
|
||||||
|
# subscribe Maggie
|
||||||
|
resp = subscribe(create_data['maggie_num'])
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert data['controlResult'] == {'controlOK': True, 'message': None}
|
||||||
|
assert len({x['personneInfo']['numPerson'] for x in data['basket']['lignes']}) == 2
|
||||||
|
assert len(subscriptions(create_data['maggie_num'])) == 1
|
||||||
|
|
||||||
|
# add bookings to Bart
|
||||||
|
slots = [x['id'] for x in extrasco_subscribe_info['info']['agenda'] if x['disabled'] is False]
|
||||||
|
url = conn + '/update-activity-agenda/?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': create_data['bart_num'],
|
||||||
|
'activity_id': extrasco_subscribe_info['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
||||||
|
'booking_list': [slots[0], slots[-1]],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
assert resp.json()['updated'] is True
|
||||||
|
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
||||||
|
assert len([x['prefill'] for x in get_bookings(create_data['bart_num']) if x['prefill'] is True]) == 2
|
||||||
|
|
||||||
|
# add bookings to Maggie
|
||||||
|
slots = [':'.join([create_data['maggie_num']] + x.split(':')[1:]) for x in slots]
|
||||||
|
url = conn + '/update-activity-agenda/?NameID=%s' % create_data['name_id']
|
||||||
|
payload = {
|
||||||
|
'person_id': create_data['maggie_num'],
|
||||||
|
'activity_id': extrasco_subscribe_info['activity']['id'],
|
||||||
|
'start_date': extrasco_subscribe_info['unit']['dateStart'][:10],
|
||||||
|
'end_date': extrasco_subscribe_info['unit']['dateEnd'][:10],
|
||||||
|
'booking_list': [slots[0], slots[-1]],
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
assert resp.json()['updated'] is True
|
||||||
|
assert [x['booked'] for x in resp.json()['changes']] == [True, True]
|
||||||
|
assert len([x['prefill'] for x in get_bookings(create_data['maggie_num']) if x['prefill'] is True]) == 2
|
||||||
|
|
||||||
|
# validate basket
|
||||||
|
url = conn + '/validate-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
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert len(data['idInsLst']) == 2
|
||||||
|
assert len(data['factureLst']) == 1
|
||||||
|
assert get_baskets() == []
|
||||||
|
assert len(data['factureLst'][0]['lineInvoiceList']) == 2
|
||||||
|
assert data['factureLst'][0]['regie']['code'] == 105
|
||||||
|
invoice_num = data['factureLst'][0]['numInvoice']
|
||||||
|
invoice_id = data['factureLst'][0]['idInvoice']
|
||||||
|
|
||||||
|
# get invoices paid
|
||||||
|
url = conn + '/regie/105/invoices/history?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json() == {'data': [], 'err': 0}
|
||||||
|
|
||||||
|
# get invoices to be paid
|
||||||
|
url = conn + '/regie/105/invoices?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert len(data) == 1
|
||||||
|
assert data[0]['amount'] == '46' # ou juste > 0 ?
|
||||||
|
assert data[0]['online_payment'] is True
|
||||||
|
assert data[0]['paid'] is False
|
||||||
|
assert len({x['idIns'] for x in data[0]['maelis_item']['lineInvoiceList']}) == 2
|
||||||
|
assert data[0]['maelis_item']['idInvoice'] == invoice_id
|
||||||
|
assert data[0]['maelis_item']['numInvoice'] == invoice_num
|
||||||
|
|
||||||
|
# payInvoice
|
||||||
|
url = conn + '/regie/105/invoice/%s-%s/pay/' % (create_data['family_id'], invoice_num)
|
||||||
|
payload = {
|
||||||
|
'transaction_date': datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
|
||||||
|
'transaction_id': 'xxx',
|
||||||
|
}
|
||||||
|
resp = requests.post(url, json=payload)
|
||||||
|
resp.raise_for_status()
|
||||||
|
res = resp.json()
|
||||||
|
assert res['data'] == 'ok'
|
||||||
|
|
||||||
|
# get invoices to be paid
|
||||||
|
url = conn + '/regie/105/invoices?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json() == {'has_invoice_for_payment': True, 'data': [], 'err': 0}
|
||||||
|
|
||||||
|
# get invoices history
|
||||||
|
url = conn + '/regie/105/invoices/history?NameID=%s' % create_data['name_id']
|
||||||
|
resp = requests.get(url)
|
||||||
|
resp.raise_for_status()
|
||||||
|
assert resp.json()['err'] == 0
|
||||||
|
data = resp.json()['data']
|
||||||
|
assert len(data) == 1
|
||||||
|
assert data[0]['amount'] == '0'
|
||||||
|
assert data[0]['total_amount'] == '46' # ou juste > 0 ?
|
||||||
|
assert data[0]['online_payment'] is False
|
||||||
|
assert data[0]['paid'] is True
|
||||||
|
assert len({x['idIns'] for x in data[0]['maelis_item']['lineInvoiceList']}) == 2
|
||||||
|
assert data[0]['maelis_item']['idInvoice'] == invoice_id
|
||||||
|
assert data[0]['maelis_item']['numInvoice'] == invoice_num
|
||||||
|
|
Loading…
Reference in New Issue