diff --git a/passerelle/contrib/dpark/models.py b/passerelle/contrib/dpark/models.py index 15cc3e3e..8bb4bfb0 100644 --- a/passerelle/contrib/dpark/models.py +++ b/passerelle/contrib/dpark/models.py @@ -468,8 +468,11 @@ class DPark(BaseResource): except ValueError as e: errors.append(u'<%s> cannot be converted to PDF: %s' % (key, e)) continue + filename = value['filename'] + if not filename.lower().endswith('.pdf'): + filename += '.pdf' attached_files.append({ - 'TypeDocument': doc_id, 'NomFichier': value['filename'], 'Fichier': pdf_content}) + 'TypeDocument': doc_id, 'NomFichier': filename, 'Fichier': pdf_content}) # deduce the number of files if errors: raise APIError(errors) diff --git a/tests/test_dpark.py b/tests/test_dpark.py index aa665f8e..d507032c 100644 --- a/tests/test_dpark.py +++ b/tests/test_dpark.py @@ -596,14 +596,14 @@ def test_send_files(dpark, app, settings, freezer): assert resp.json['err_desc'] == u'Numéro de demande introuvable' params['justif_domicile'] = { - 'filename': 'address_proof.pdf', 'content_type': 'application/pdf', + 'filename': 'address_proof.pDf', 'content_type': 'application/pdf', 'content': base64.b64encode('%PDF this is my proof of address')} params['cartegrise,1'] = { 'filename': 'cartegrise.pdf', 'content_type': 'application/pdf', 'content': base64.b64encode('%PDF carte grise 1') } params['toto,6'] = { - 'filename': 'cartegrisetoto.pdf', + 'filename': 'cartegrisetoto.jpg', 'content_type': 'application/pdf', 'content': base64.b64encode(JPEG_CONTENT) } @@ -664,11 +664,12 @@ def test_send_files(dpark, app, settings, freezer): assert pj_node.findall('Bloc_Fichiers')[1].find('NomFichier').text == 'cartegrise2.pdf' assert pj_node.findall('Bloc_Fichiers')[1].find('Fichier').text == base64.b64encode('%PDF carte grise 2') assert pj_node.findall('Bloc_Fichiers')[2].find('TypeDocument').text == '2' - assert pj_node.findall('Bloc_Fichiers')[2].find('NomFichier').text == 'address_proof.pdf' + assert pj_node.findall('Bloc_Fichiers')[2].find('NomFichier').text == 'address_proof.pDf' assert pj_node.findall('Bloc_Fichiers')[2].find('Fichier').text == base64.b64encode( '%PDF this is my proof of address') assert pj_node.findall('Bloc_Fichiers')[3].find('TypeDocument').text == '73' from passerelle.utils.conversion import to_pdf + assert pj_node.findall('Bloc_Fichiers')[3].find('NomFichier').text == 'cartegrisetoto.jpg.pdf' assert pj_node.findall('Bloc_Fichiers')[3].find('Fichier').text == base64.b64encode(to_pdf(JPEG_CONTENT)) assert base64.b64decode(pj_node.findall('Bloc_Fichiers')[3].find('Fichier').text).startswith('%PDF')