From 46dcdb82e752355a91e5563e16bfcf612f4e0c59 Mon Sep 17 00:00:00 2001 From: DonRenando Date: Tue, 24 Jan 2017 11:14:19 +0100 Subject: [PATCH] TG-46 test fusion pdf --- backend/app/tools/FusionPdf.py | 23 ++++++++-- .../tests/tools/PyPDF2/TestFusionFichiers.py | 21 +++++++++ backend/tests/tools/PyPDF2/page1.pdf | Bin 0 -> 6582 bytes backend/tests/tools/PyPDF2/page2.pdf | Bin 0 -> 6686 bytes .../tools/pdfjinja/TestInsertTemplate.py | 41 +++++++++--------- 5 files changed, 60 insertions(+), 25 deletions(-) create mode 100644 backend/tests/tools/PyPDF2/page1.pdf create mode 100644 backend/tests/tools/PyPDF2/page2.pdf diff --git a/backend/app/tools/FusionPdf.py b/backend/app/tools/FusionPdf.py index 9c79a71..63bcd09 100644 --- a/backend/app/tools/FusionPdf.py +++ b/backend/app/tools/FusionPdf.py @@ -2,9 +2,24 @@ import os from PyPDF2 import PdfFileReader, PdfFileMerger -def fusion_fichiers(chemin_des_pdf, chemin_merge_pdf, nom_merge_pdf): - pdf_files = [f for f in os.listdir(chemin_des_pdf) if f.endswith("pdf")] +def fusion_fichiers(chemin_merge_pdf, nom_merge_pdf, liste_de_pdf): + """ + Permet de fusionner un ensemble de pdf + :param chemin_merge_pdf: chemin ou l'on souhaite fusioner l'ensemble des pdf + :param nom_merge_pdf: nom que l'on souhaite donner au fichier pdf final + :param liste_de_pdf: liste de pdf avec leur chemin inclu + :return: + """ merger = PdfFileMerger() - for filename in pdf_files: - merger.append(PdfFileReader(os.path.join(chemin_des_pdf, filename), "rb")) + for filename in liste_de_pdf: + merger.append(PdfFileReader(os.path.join(filename), "rb")) merger.write(os.path.join(chemin_merge_pdf, nom_merge_pdf)) + + +def get_pdf_from_directory(chemin_des_pdf): + """ + Permet de récuperer l'ensemble des pdf d'un chemin + :param chemin_des_pdf: + :return: + """ + return [f for f in os.listdir(chemin_des_pdf) if f.endswith("pdf")] diff --git a/backend/tests/tools/PyPDF2/TestFusionFichiers.py b/backend/tests/tools/PyPDF2/TestFusionFichiers.py index e69de29..0fb6737 100644 --- a/backend/tests/tools/PyPDF2/TestFusionFichiers.py +++ b/backend/tests/tools/PyPDF2/TestFusionFichiers.py @@ -0,0 +1,21 @@ +import os +import unittest + +from pathlib import Path + +from builtins import print + +from app.tools.FusionPdf import fusion_fichiers, get_pdf_from_directory + + +class TestFusionTestCase(unittest.TestCase): + def setUp(self): + self.datadir = os.path.join(os.path.dirname(__file__)) + self.list_pdf = [self.datadir + "/page1.pdf", self.datadir + "/page2.pdf"] + + def test_fusion(self): + fusion_fichiers(self.datadir, "testFusion.pdf", self.list_pdf) + print(self.datadir) + self.assertTrue(Path(self.datadir + "/testFusion.pdf").is_file(), "Pdf fusionne inexistant") + self.assertTrue(len(get_pdf_from_directory(self.datadir)) > 0, "pdf non trouve") + os.remove(self.datadir + "/testFusion.pdf") diff --git a/backend/tests/tools/PyPDF2/page1.pdf b/backend/tests/tools/PyPDF2/page1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6b4e9cc3eb9dd72f4f1e6ba9154932ee9c0868fa GIT binary patch literal 6582 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 literal 0 HcmV?d00001 diff --git a/backend/tests/tools/PyPDF2/page2.pdf b/backend/tests/tools/PyPDF2/page2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e9847091a2a7019161b5a3385f9c8345848604fb GIT binary patch literal 6686 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 0, "Output PDF is not empty.") - self.assertTrue(Path(self.datadir+"/output.pdf").is_file(),"Pdf généré inexistant") - os.remove(self.datadir+"/output.pdf") + self.assertTrue(Path(self.datadir + "/output.pdf").is_file(), "Pdf généré inexistant") + os.remove(self.datadir + "/output.pdf") if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main()