toulouse-maelis: ajouter une date de visa en paramètre au endpoint add-supplied-document (#78074) #270

Merged
nroche merged 3 commits from wip/78074-parsifal-visa-on-supplied-document into main 2023-06-01 16:07:00 +02:00
3 changed files with 108 additions and 1 deletions

View File

@ -796,6 +796,16 @@ SUPPLIED_DOCUMENT_SCHEMA = {
'type': 'string',
'pattern': '^([0-9]{4}-[0-9]{2}-[0-9]{2}){0,1}$',
},
'visaDate': {
'description': 'Date de visa',
'type': 'string',
'pattern': '^([0-9]{4}-[0-9]{2}-[0-9]{2}){0,1}$',
},
'validityDate': {
'description': 'Date de validité',
'type': 'string',
'pattern': '^([0-9]{4}-[0-9]{2}-[0-9]{2}){0,1}$',
},
'file': WCS_FILE_SCHEMA,
},
}

View File

@ -0,0 +1,57 @@
#!/usr/bin/python3
import argparse
import utils
FAMILY_ID = '322573' # NICO
PERSON_ID = '263781' # BART
TYPE_ID = '46'
DATE = '2022-09-13'
VISA = '2022-09-14'
VALIDITY = '2022-09-15'
FILENAME = 'test.txt'
PERSON_ID = None
def check(args):
utils.configure_logging(args.verbose)
client = utils.get_client(args.env, 'Family')
result = client.service.addSuppliedDocument(
addSuppliedDocumentRequestBean={
'numDossier': args.family,
'numPerson': args.person,
'documentList': [
{
'code': args.type,
'depositDate': args.date,
'visaDate': args.visa,
'validityDate': args.validity,
'filename': args.filename,
'fileSupplied': {
'dataHandler': open(args.filename, 'rb').read(),
'fileType': None,
'name': None,
},
}
],
}
)
print(result)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', '-v', type=int, default=2, help='display errors')
parser.add_argument('--env', '-e', default='integ', help='dev, test, integ, prod')
parser.add_argument('--family', '-f', default=FAMILY_ID, help='family id')
parser.add_argument('--person', '-P', default=PERSON_ID, help='person id')
parser.add_argument(
'--type', '-t', default=TYPE_ID, help='document type (cf ./read_referential_list.py document)'
)
parser.add_argument('--date', '-d', default=DATE, help='date (ex: 2023-02-01)')
parser.add_argument('--visa', '-V', default=VISA, help='date (ex: 2023-02-02)')
parser.add_argument('--validity', '-W', default=VALIDITY, help='date (ex: 2023-02-03)')
parser.add_argument('--filename', '-F', default=FILENAME, help='file to upload')
check(parser.parse_args())

View File

@ -4421,9 +4421,14 @@ def test_update_child_indicator_wrong_referential_key_error(con, app):
)
def test_add_supplied_document(family_service, con, app):
def test_add_supplied_document(family_service, con, app, freezer):
def request_check(request):
assert request.documentList[0]['depositDate'] == datetime.datetime(2022, 12, 20, 0, 0)
assert request.documentList[0]['visaDate'] is None
assert request.documentList[0]['validityDate'] is None
assert request.documentList[0]['fileSupplied']['dataHandler'] == get_media_file('201x201.jpg')
assert request.documentList[0]['fileSupplied']['name'] == '201x201.jpg'
assert request.documentList[0]['fileSupplied']['fileType'] == 'image/jpeg'
family_service.add_soap_response(
'addSuppliedDocument',
@ -4442,6 +4447,41 @@ def test_add_supplied_document(family_service, con, app):
},
}
freezer.move_to('2022-12-20 18:30:00')
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
assert resp.json['data'] == 'ok'
def test_add_supplied_document_providing_dates(family_service, con, app):
def request_check(request):
assert request.documentList[0]['depositDate'] == datetime.datetime(2022, 12, 20, 0, 0)
assert request.documentList[0]['visaDate'] == datetime.datetime(2022, 12, 21, 0, 0)
assert request.documentList[0]['validityDate'] == datetime.datetime(2022, 12, 22, 0, 0)
family_service.add_soap_response(
'addSuppliedDocument',
get_xml_file('R_add_supplied_document.xml') % b'OK',
request_check=request_check,
)
url = get_endpoint('add-supplied-document')
params = {
'numPerson': '613880',
'documentList/0/code': '46',
'documentList/0/depositDate': '2022-12-20',
'documentList/0/visaDate': '2022-12-21',
'documentList/0/validityDate': '2022-12-22',
'documentList/0/file': { # w.c.s. file field
'filename': '201x201.jpg',
'content_type': 'image/jpeg',
'content': base64.b64encode(get_media_file('201x201.jpg')).decode(),
},
}
resp = app.post_json(url + '?family_id=1312', params=params)
assert resp.json['err'] == 0
Link.objects.create(resource=con, family_id='1312', name_id='local')