toulouse-maelis: sent invoice cancellation order on get-baskets endpoint too (#76395)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Nicolas Roche 2023-04-21 12:05:56 +02:00
parent 483268c636
commit c7d33287c5
2 changed files with 50 additions and 0 deletions

View File

@ -3643,6 +3643,10 @@ class ToulouseMaelis(BaseResource, HTTPResource):
baskets = self.get_baskets_raw(family_id)
for item in baskets:
item['text'] = self.get_referential_value('Regie', item['codeRegie'])
# send invoice cancellation order more often than hourly
self.cancel_basket_invoices()
return {'data': baskets}
@endpoint(

View File

@ -8951,6 +8951,52 @@ def test_cancel_basket_invoice_cron_maelis_error(activity_service, invoice_servi
assert '1312-18' not in [x['id'] for x in resp.json['data']]
def test_cancel_basket_invoice_on_get_baskets(activity_service, con, app, freezer, caplog):
def request_check(request):
assert request == 'F10055641671'
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'))
activity_service.add_soap_response(
'cancelInvoiceAndDeleteSubscribeList',
get_xml_file('R_cancel_invoice_and_delete_subscribe_list.xml'),
request_check=request_check,
)
Link.objects.create(resource=con, family_id='1312', name_id='local')
url = get_endpoint('get-baskets')
assert con.cancel_invoice_delay == 30
# invoice created on validate basket
freezer.move_to('2023-03-03 18:30:00')
resp = app.post_json(
get_endpoint('validate-basket') + '?NameID=local', params={'basket_id': 'S10055641661'}
)
assert resp.json['err'] == 0
invoice = con.invoice_set.get(regie_id=109, invoice_id=18)
assert invoice.status() == 'created'
# invoice is not yet cancelled
resp = app.get(url + '?family_id=1312')
assert resp.json['err'] == 0
invoice = con.invoice_set.get(regie_id=109, invoice_id=18)
assert invoice.status() == 'created'
# invoice is no more display but cancellation order is not sent to maelis yet
freezer.move_to('2023-03-03 19:00:00')
resp = app.get(url + '?family_id=1312')
assert resp.json['err'] == 0
invoice = con.invoice_set.get(regie_id=109, invoice_id=18)
assert invoice.status() == 'cancelled'
assert invoice.maelis_cancel_notification_date is None
# cancellation order is now sent to maelis
freezer.move_to('2023-03-03 19:20:00')
resp = app.get(url + '?family_id=1312')
assert resp.json['err'] == 0
invoice = con.invoice_set.get(regie_id=109, invoice_id=18)
assert invoice.maelis_cancel_notification_date.strftime('%Y-%m-%d %H:%M:%S') == '2023-03-03 19:20:00'
def test_read_nursery_list(con, app):
url = get_endpoint('read-nursery-list')
resp = app.get(url)