toulouse-maelis: ajouter des endpoints pour valider le panier (#73961) #65
|
@ -529,6 +529,17 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
||||||
data = serialize_object(response)
|
data = serialize_object(response)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def get_basket_raw(self, family_id):
|
||||||
|
response = self.call(
|
||||||
|
'Activity',
|
||||||
|
'getFamilyBasket',
|
||||||
|
getFamilyBasketRequestBean={
|
||||||
|
'numFamily': family_id,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
data = serialize_object(response)
|
||||||
|
return data
|
||||||
|
|
||||||
@endpoint(
|
@endpoint(
|
||||||
display_category='Famille',
|
display_category='Famille',
|
||||||
description='Liste des catégories',
|
description='Liste des catégories',
|
||||||
|
@ -2521,6 +2532,125 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
||||||
raise APIError(response['controlResult']['message'])
|
raise APIError(response['controlResult']['message'])
|
||||||
return {'data': serialize_object(response)}
|
return {'data': serialize_object(response)}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
display_category='Inscriptions',
|
||||||
|
description="Lecture du panier de la famille",
|
||||||
|
name='get-basket',
|
||||||
|
perm='can_access',
|
||||||
|
parameters={
|
||||||
|
'NameID': {'description': 'Publik NameID'},
|
||||||
|
'family_id': {'description': 'Numéro de DUI'},
|
||||||
|
|||||||
|
},
|
||||||
|
)
|
||||||
|
def get_basket(self, request, NameID=None, family_id=None):
|
||||||
|
family_id = family_id or self.get_link(NameID).family_id
|
||||||
|
return {'data': self.get_basket_raw(family_id)}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
display_category='Inscriptions',
|
||||||
|
description="Prolonge la durée de vie du panier",
|
||||||
|
name='update-basket-time',
|
||||||
|
perm='can_access',
|
||||||
|
parameters={
|
||||||
|
'NameID': {'description': 'Publik NameID'},
|
||||||
|
'family_id': {'description': 'Numéro de DUI'},
|
||||||
|
},
|
||||||
|
methods=['post'],
|
||||||
|
)
|
||||||
|
def update_basket_time(self, request, NameID=None, family_id=None):
|
||||||
|
family_id = family_id or self.get_link(NameID).family_id
|
||||||
|
basket = self.get_basket_raw(family_id)
|
||||||
|
if not basket or not basket.get('id'):
|
||||||
|
raise APIError("no basket on '%s' family" % family_id)
|
||||||
|
|
||||||
|
self.call('Activity', 'updateBasketTime', idBasket=basket['id'])
|
||||||
|
return {'data': 'ok'}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
display_category='Inscriptions',
|
||||||
|
description="Suppression d'une ligne du panier",
|
||||||
|
name='delete-basket-line',
|
||||||
|
perm='can_access',
|
||||||
|
parameters={
|
||||||
|
'NameID': {'description': 'Publik NameID'},
|
||||||
|
'family_id': {'description': 'Numéro de DUI'},
|
||||||
|
'line_id': {'description': 'Numéro de ligne du panier'},
|
||||||
|
},
|
||||||
|
methods=['post'],
|
||||||
|
)
|
||||||
|
def delete_basket_line(self, request, line_id, NameID=None, family_id=None):
|
||||||
|
family_id = family_id or self.get_link(NameID).family_id
|
||||||
|
basket = self.get_basket_raw(family_id)
|
||||||
|
if not basket or not basket.get('id'):
|
||||||
|
raise APIError("no basket on '%s' family" % family_id)
|
||||||
|
for line in basket['lignes']:
|
||||||
|
if line['id'] == line_id:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise APIError("no '%s' basket line on '%s' family" % (line_id, family_id))
|
||||||
|
|
||||||
|
response = self.call(
|
||||||
|
'Activity',
|
||||||
|
'deletePersonUnitBasket',
|
||||||
|
deletePersonUnitBasketRequestBean={
|
||||||
|
'idBasketLine': line_id,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
return {'data': serialize_object(response)}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
display_category='Inscriptions',
|
||||||
|
description="Suppression du panier de la famille",
|
||||||
|
name='delete-basket',
|
||||||
|
perm='can_access',
|
||||||
|
parameters={
|
||||||
|
'NameID': {'description': 'Publik NameID'},
|
||||||
|
'family_id': {'description': 'Numéro de DUI'},
|
||||||
|
},
|
||||||
|
methods=['post'],
|
||||||
|
)
|
||||||
|
def delete_basket(self, request, NameID=None, family_id=None):
|
||||||
|
family_id = family_id or self.get_link(NameID).family_id
|
||||||
|
basket = self.get_basket_raw(family_id)
|
||||||
|
if not basket or not basket.get('id'):
|
||||||
|
raise APIError("no basket on '%s' family" % family_id)
|
||||||
|
|
||||||
|
self.call(
|
||||||
|
'Activity',
|
||||||
|
'deleteBasket',
|
||||||
|
deleteBasketRequestBean={
|
||||||
|
'idBasket': basket['id'],
|
||||||
|
'idUtilisat': NameID or 'Middle-office',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
return {'data': 'ok'}
|
||||||
|
|
||||||
|
@endpoint(
|
||||||
|
display_category='Inscriptions',
|
||||||
|
description="Validation du panier de la famille",
|
||||||
|
name='validate-basket',
|
||||||
|
perm='can_access',
|
||||||
|
parameters={
|
||||||
|
'NameID': {'description': 'Publik NameID'},
|
||||||
|
'family_id': {'description': 'Numéro de DUI'},
|
||||||
|
},
|
||||||
|
methods=['post'],
|
||||||
|
)
|
||||||
|
def validate_basket(self, request, NameID=None, family_id=None):
|
||||||
|
family_id = family_id or self.get_link(NameID).family_id
|
||||||
|
basket = self.get_basket_raw(family_id)
|
||||||
|
if not basket or not basket.get('id'):
|
||||||
|
raise APIError("no basket on '%s' family" % family_id)
|
||||||
|
|
||||||
|
response = self.call(
|
||||||
|
'Activity',
|
||||||
|
'validateBasket',
|
||||||
|
validateBasketRequestBean={
|
||||||
|
'idBasket': basket['id'],
|
||||||
|
},
|
||||||
|
)
|
||||||
|
return {'data': serialize_object(response)}
|
||||||
|
|
||||||
|
|
||||||
class Link(models.Model):
|
class Link(models.Model):
|
||||||
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)
|
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf8"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:deleteBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com"/>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?xml version="1.0" encoding="utf8"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:deletePersonUnitBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
|
||||||
|
<deletePersonUnitBasketResultBean>
|
||||||
|
<basket>
|
||||||
|
<dateAdd>2023-01-30T00:42:48+01:00</dateAdd>
|
||||||
|
<dateMaj>2023-01-30T00:42:48+01:00</dateMaj>
|
||||||
|
<delai>0</delai>
|
||||||
|
<id>S10053200723</id>
|
||||||
|
<idFam>S10053183425</idFam>
|
||||||
|
<lignes>
|
||||||
|
<dateMaj>2023-01-28T23:50:34+01:00</dateMaj>
|
||||||
|
<id>S10053203105</id>
|
||||||
|
<idIns>S10053203103</idIns>
|
||||||
|
<idInsLieu>S10053203104</idInsLieu>
|
||||||
|
<idPanier>S10053200723</idPanier>
|
||||||
|
<inscription>
|
||||||
|
<dateDeb>2023-02-01T00:00:00+01:00</dateDeb>
|
||||||
|
<dateFin>2023-06-30T00:00:00+02:00</dateFin>
|
||||||
|
<idAct>A10051141965</idAct>
|
||||||
|
<idInsAct>S10053203103</idInsAct>
|
||||||
|
<idInsLieu>S10053203104</idInsLieu>
|
||||||
|
<idLieu>A10053179226</idLieu>
|
||||||
|
<idRegie>A10049327675</idRegie>
|
||||||
|
<idUnit>A10051141970</idUnit>
|
||||||
|
<libAct>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libAct>
|
||||||
|
<libLieu>Centre Culturel ALBAN MINVILLE</libLieu>
|
||||||
|
<libUnit>Inscription 2ème semestre</libUnit>
|
||||||
|
</inscription>
|
||||||
|
<personneInfo>
|
||||||
|
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
|
||||||
|
<firstname>BART</firstname>
|
||||||
|
<lastname>NICO</lastname>
|
||||||
|
<numPerson>246711</numPerson>
|
||||||
|
<sexe>M</sexe>
|
||||||
|
</personneInfo>
|
||||||
|
</lignes>
|
||||||
|
<lignes>
|
||||||
|
<dateMaj>2023-01-26T17:39:40+01:00</dateMaj>
|
||||||
|
<id>S10053200724</id>
|
||||||
|
<idIns>S10053200721</idIns>
|
||||||
|
<idInsLieu>S10053200722</idInsLieu>
|
||||||
|
<idPanier>S10053200723</idPanier>
|
||||||
|
<inscription>
|
||||||
|
<dateDeb>2022-09-01T00:00:00+02:00</dateDeb>
|
||||||
|
<dateFin>2023-08-31T00:00:00+02:00</dateFin>
|
||||||
|
<idAct>A10051141965</idAct>
|
||||||
|
<idInsAct>S10053200721</idInsAct>
|
||||||
|
<idInsLieu>S10053200722</idInsLieu>
|
||||||
|
<idLieu>A10053179226</idLieu>
|
||||||
|
<idRegie>A10049327675</idRegie>
|
||||||
|
<idUnit>A10051141990</idUnit>
|
||||||
|
<libAct>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libAct>
|
||||||
|
<libLieu>Centre Culturel ALBAN MINVILLE</libLieu>
|
||||||
|
<libUnit>Inscription 1er semestre</libUnit>
|
||||||
|
</inscription>
|
||||||
|
<personneInfo>
|
||||||
|
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
|
||||||
|
<firstname>BART</firstname>
|
||||||
|
<lastname>NICO</lastname>
|
||||||
|
<numPerson>246711</numPerson>
|
||||||
|
<sexe>M</sexe>
|
||||||
|
</personneInfo>
|
||||||
|
</lignes>
|
||||||
|
</basket>
|
||||||
|
</deletePersonUnitBasketResultBean>
|
||||||
|
</ns2:deletePersonUnitBasketResponse>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" encoding="utf8"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:getFamilyBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
|
||||||
|
<getFamilyBasketResultBean>
|
||||||
|
<basket>
|
||||||
|
<dateAdd>2023-01-28T23:56:23+01:00</dateAdd>
|
||||||
|
<dateMaj>2023-01-28T23:56:23+01:00</dateMaj>
|
||||||
|
<delai>0</delai>
|
||||||
|
<id>S10053200723</id>
|
||||||
|
<idFam>S10053183425</idFam>
|
||||||
|
<lignes>
|
||||||
|
<dateMaj>2023-01-28T23:56:23+01:00</dateMaj>
|
||||||
|
<id>S10053203120</id>
|
||||||
|
<idIns>S10053203118</idIns>
|
||||||
|
<idInsLieu>S10053203119</idInsLieu>
|
||||||
|
<idPanier>S10053200723</idPanier>
|
||||||
|
<inscription>
|
||||||
|
<dateDeb>2023-02-20T00:00:00+01:00</dateDeb>
|
||||||
|
<dateFin>2023-02-24T00:00:00+01:00</dateFin>
|
||||||
|
<idAct>A10053187065</idAct>
|
||||||
|
<idInsAct>S10053203118</idInsAct>
|
||||||
|
<idInsLieu>S10053203119</idInsLieu>
|
||||||
|
<idLieu>A10053179604</idLieu>
|
||||||
|
<idRegie>A10049327667</idRegie>
|
||||||
|
<idUnit>A10053187085</idUnit>
|
||||||
|
<libAct>Vacances Hivers 2023</libAct>
|
||||||
|
<libLieu>ALEX JANY</libLieu>
|
||||||
|
<libUnit>Semaine 1</libUnit>
|
||||||
|
</inscription>
|
||||||
|
<personneInfo>
|
||||||
|
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
|
||||||
|
<firstname>BART</firstname>
|
||||||
|
<lastname>NICO</lastname>
|
||||||
|
<numPerson>246711</numPerson>
|
||||||
|
<sexe>M</sexe>
|
||||||
|
</personneInfo>
|
||||||
|
</lignes>
|
||||||
|
<lignes>
|
||||||
|
<dateMaj>2023-01-28T23:50:34+01:00</dateMaj>
|
||||||
|
<id>S10053203105</id>
|
||||||
|
<idIns>S10053203103</idIns>
|
||||||
|
<idInsLieu>S10053203104</idInsLieu>
|
||||||
|
<idPanier>S10053200723</idPanier>
|
||||||
|
<inscription>
|
||||||
|
<dateDeb>2023-02-01T00:00:00+01:00</dateDeb>
|
||||||
|
<dateFin>2023-06-30T00:00:00+02:00</dateFin>
|
||||||
|
<idAct>A10051141965</idAct>
|
||||||
|
<idInsAct>S10053203103</idInsAct>
|
||||||
|
<idInsLieu>S10053203104</idInsLieu>
|
||||||
|
<idLieu>A10053179226</idLieu>
|
||||||
|
<idRegie>A10049327675</idRegie>
|
||||||
|
<idUnit>A10051141970</idUnit>
|
||||||
|
<libAct>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libAct>
|
||||||
|
<libLieu>Centre Culturel ALBAN MINVILLE</libLieu>
|
||||||
|
<libUnit>Inscription 2ème semestre</libUnit>
|
||||||
|
</inscription>
|
||||||
|
<personneInfo>
|
||||||
|
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
|
||||||
|
<firstname>BART</firstname>
|
||||||
|
<lastname>NICO</lastname>
|
||||||
|
<numPerson>246711</numPerson>
|
||||||
|
<sexe>M</sexe>
|
||||||
|
</personneInfo>
|
||||||
|
</lignes>
|
||||||
|
<lignes>
|
||||||
|
<dateMaj>2023-01-26T17:39:40+01:00</dateMaj>
|
||||||
|
<id>S10053200724</id>
|
||||||
|
<idIns>S10053200721</idIns>
|
||||||
|
<idInsLieu>S10053200722</idInsLieu>
|
||||||
|
<idPanier>S10053200723</idPanier>
|
||||||
|
<inscription>
|
||||||
|
<dateDeb>2022-09-01T00:00:00+02:00</dateDeb>
|
||||||
|
<dateFin>2023-08-31T00:00:00+02:00</dateFin>
|
||||||
|
<idAct>A10051141965</idAct>
|
||||||
|
<idInsAct>S10053200721</idInsAct>
|
||||||
|
<idInsLieu>S10053200722</idInsLieu>
|
||||||
|
<idLieu>A10053179226</idLieu>
|
||||||
|
<idRegie>A10049327675</idRegie>
|
||||||
|
<idUnit>A10051141990</idUnit>
|
||||||
|
<libAct>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libAct>
|
||||||
|
<libLieu>Centre Culturel ALBAN MINVILLE</libLieu>
|
||||||
|
<libUnit>Inscription 1er semestre</libUnit>
|
||||||
|
</inscription>
|
||||||
|
<personneInfo>
|
||||||
|
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
|
||||||
|
<firstname>BART</firstname>
|
||||||
|
<lastname>NICO</lastname>
|
||||||
|
<numPerson>246711</numPerson>
|
||||||
|
<sexe>M</sexe>
|
||||||
|
</personneInfo>
|
||||||
|
</lignes>
|
||||||
|
</basket>
|
||||||
|
</getFamilyBasketResultBean>
|
||||||
|
</ns2:getFamilyBasketResponse>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:getFamilyBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
|
||||||
|
<getFamilyBasketResultBean/>
|
||||||
|
</ns2:getFamilyBasketResponse>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf8"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:updateBasketTimeResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com"/>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf8"?>
|
||||||
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<ns2:validateBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
|
||||||
|
<validateBasketResultBean>
|
||||||
|
<idFam>S10053183425</idFam>
|
||||||
|
<idInsLst>S10053203103</idInsLst>
|
||||||
|
<idInsLst>S10053200721</idInsLst>
|
||||||
|
</validateBasketResultBean>
|
||||||
|
</ns2:validateBasketResponse>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
|
@ -5740,3 +5740,205 @@ def test_add_person_basket_subscription_not_linked_error(con, app):
|
||||||
resp = app.post_json(url + '?NameID=local', params=params)
|
resp = app.post_json(url + '?NameID=local', params=params)
|
||||||
assert resp.json['err'] == 'not-linked'
|
assert resp.json['err'] == 'not-linked'
|
||||||
assert resp.json['err_desc'] == 'User not linked to family'
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_basket(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
url = get_endpoint('get-basket')
|
||||||
|
|
||||||
|
resp = app.get(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||||
|
|
||||||
|
resp = app.get(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
data = resp.json['data']
|
||||||
|
assert len(data['lignes']) == 3
|
||||||
|
del data['lignes'][2]
|
||||||
|
del data['lignes'][1]
|
||||||
|
assert data == {
|
||||||
|
'dateAdd': '2023-01-28T23:56:23+01:00',
|
||||||
|
'dateMaj': '2023-01-28T23:56:23+01:00',
|
||||||
|
'delai': 0,
|
||||||
|
'id': 'S10053200723',
|
||||||
|
'idFam': 'S10053183425',
|
||||||
|
'lignes': [
|
||||||
|
{
|
||||||
|
'datEchn': None,
|
||||||
|
'dateMaj': '2023-01-28T23:56:23+01:00',
|
||||||
|
'id': 'S10053203120',
|
||||||
|
'idIns': 'S10053203118',
|
||||||
|
'idInsLieu': 'S10053203119',
|
||||||
|
'idPanier': 'S10053200723',
|
||||||
|
'inscription': {
|
||||||
|
'dateDeb': '2023-02-20T00:00:00+01:00',
|
||||||
|
'dateFin': '2023-02-24T00:00:00+01:00',
|
||||||
|
'idAct': 'A10053187065',
|
||||||
|
'idInsAct': 'S10053203118',
|
||||||
|
'idInsLieu': 'S10053203119',
|
||||||
|
'idLieu': 'A10053179604',
|
||||||
|
'idRegie': 'A10049327667',
|
||||||
|
'idUnit': 'A10053187085',
|
||||||
|
'libAct': 'Vacances Hivers 2023',
|
||||||
|
'libLieu': 'ALEX JANY',
|
||||||
|
'libUnit': 'Semaine 1',
|
||||||
|
},
|
||||||
|
'montant': None,
|
||||||
|
'personneInfo': {
|
||||||
|
'dateBirth': '2014-04-01T00:00:00+02:00',
|
||||||
|
'firstname': 'BART',
|
||||||
|
'lastname': 'NICO',
|
||||||
|
'numPerson': 246711,
|
||||||
|
'sexe': 'M',
|
||||||
|
},
|
||||||
|
'prixUnit': None,
|
||||||
|
'qte': None,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_basket_not_linked_error(con, app):
|
||||||
|
url = get_endpoint('get-basket')
|
||||||
|
resp = app.get(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 'not-linked'
|
||||||
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_basket_time(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
activity_service.add_soap_response('updateBasketTime', get_xml_file('R_update_basket_time.xml'))
|
||||||
|
url = get_endpoint('update-basket-time')
|
||||||
|
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||||
|
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
assert resp.json['data'] == 'ok'
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_basket_time_not_linked_error(con, app):
|
||||||
|
url = get_endpoint('update-basket-time')
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 'not-linked'
|
||||||
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_basket_time_basket_not_found(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket_empty.xml'))
|
||||||
|
url = get_endpoint('update-basket-time')
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert resp.json['err_desc'] == "no basket on '311352' family"
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket_line(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
activity_service.add_soap_response(
|
||||||
|
'deletePersonUnitBasket', get_xml_file('R_delete_person_unit_basket.xml')
|
||||||
|
)
|
||||||
|
url = get_endpoint('delete-basket-line')
|
||||||
|
|
||||||
|
resp = app.post(url + '?family_id=311352&line_id=S10053203120')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||||
|
|
||||||
|
resp = app.post(url + '?NameID=local&line_id=S10053203120')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
assert len(resp.json['data']['lignes']) == 2
|
||||||
|
assert 'S10053203120' not in [x['id'] for x in resp.json['data']['lignes']]
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket_line_not_linked_error(con, app):
|
||||||
|
url = get_endpoint('delete-basket-line')
|
||||||
|
resp = app.post(url + '?NameID=local&line_id=S10053203120')
|
||||||
|
assert resp.json['err'] == 'not-linked'
|
||||||
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_basket_line_basket_not_found(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket_empty.xml'))
|
||||||
|
url = get_endpoint('delete-basket-line')
|
||||||
|
resp = app.post(url + '?family_id=311352&line_id=S10053203120')
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert resp.json['err_desc'] == "no basket on '311352' family"
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket_line_line_not_found(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
url = get_endpoint('delete-basket-line')
|
||||||
|
resp = app.post(url + '?family_id=311352&line_id=plop')
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert resp.json['err_desc'] == "no 'plop' basket line on '311352' family"
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket(activity_service, con, app):
|
||||||
|
def request_check(request):
|
||||||
|
assert request.idUtilisat in ('local', 'Middle-office')
|
||||||
|
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
activity_service.add_soap_response(
|
||||||
|
'deleteBasket',
|
||||||
|
get_xml_file('R_delete_basket.xml'),
|
||||||
|
request_check=request_check,
|
||||||
|
)
|
||||||
|
url = get_endpoint('delete-basket')
|
||||||
|
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||||
|
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
assert resp.json['data'] == 'ok'
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket_not_linked_error(con, app):
|
||||||
|
url = get_endpoint('delete-basket')
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 'not-linked'
|
||||||
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_basket_not_found(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket_empty.xml'))
|
||||||
|
url = get_endpoint('delete-basket')
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert resp.json['err_desc'] == "no basket on '311352' family"
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_basket(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||||
|
activity_service.add_soap_response('validateBasket', get_xml_file('R_validate_basket.xml'))
|
||||||
|
url = get_endpoint('validate-basket')
|
||||||
|
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||||
|
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 0
|
||||||
|
assert resp.json['data'] == {
|
||||||
|
'idFam': 'S10053183425',
|
||||||
|
'idFactureLst': [],
|
||||||
|
'idInsLst': ['S10053203103', 'S10053200721'],
|
||||||
|
'paramUrlReglement': [],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_basket_not_linked_error(con, app):
|
||||||
|
url = get_endpoint('validate-basket')
|
||||||
|
resp = app.post(url + '?NameID=local')
|
||||||
|
assert resp.json['err'] == 'not-linked'
|
||||||
|
assert resp.json['err_desc'] == 'User not linked to family'
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_basket_not_found(activity_service, con, app):
|
||||||
|
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket_empty.xml'))
|
||||||
|
url = get_endpoint('validate-basket')
|
||||||
|
resp = app.post(url + '?family_id=311352')
|
||||||
|
assert resp.json['err'] == 1
|
||||||
|
assert resp.json['err_desc'] == "no basket on '311352' family"
|
||||||
|
|
Loading…
Reference in New Issue
(et ici)