diff --git a/docker-compose.yaml b/docker-compose.yaml index 115747c..8b0d2c4 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -24,6 +24,6 @@ services: ./init.sh " ports: - - 8001:8000 + - 8002:8000 diff --git a/init.sh b/init.sh index 9af698b..0f7b310 100755 --- a/init.sh +++ b/init.sh @@ -1,7 +1,7 @@ #!/bin/bash # (cd /app/ && pytest tests/test_pdf_util.py) -(cd /app/ && pytest) +(cd /app/ && pytest -o log_cli=true) # (cd /app/ && gunicorn -w 4 -b 0.0.0.0:8000 wsgi:app) (cd /app/ && gunicorn --access-logfile '-' --error-logfile '-' -w 4 -b 0.0.0.0:8000 wsgi:app) # Dev (Logging to console) diff --git a/pdf_util/pdf_project_manager.py b/pdf_util/pdf_project_manager.py index 312eff8..c1cb0ee 100644 --- a/pdf_util/pdf_project_manager.py +++ b/pdf_util/pdf_project_manager.py @@ -1,15 +1,16 @@ -from pypdf import PdfReader, PdfWriter import uuid import os import shutil +import traceback +import glob import datetime as dt import logging import sys - from pdf_util.pdf_util import pdf_util +base_path = "/app/projects/" # Setup Logging logging.basicConfig( @@ -23,26 +24,74 @@ logging.basicConfig( ] ) -base_path = "/app/projects/" class pdf_project_manager: - def __init__(self): - self.uuid = str(uuid.uuid4()) - self.pdf_init = False - self.project_name = "" + def __init__(self, uuid4=None): + if uuid4 is not None: + self.uuid = uuid4 + else: + self.uuid = str(uuid.uuid4()) + + try: + self.pdf_init = os.path.isfile('/app/projects/' + self.uuid + '/complete.pdf') + except Exception as e: + logging.warning("Error looking up file: " + str(e)) + logging.warning("Stacktrace: " + str(traceback.format_exc())) + self.pdf_init = False + os.makedirs(base_path + self.uuid, exist_ok=True) + self.pdf_handler = None + def merge_all_single_pages(self): + listing = glob.glob(base_path + self.uuid + '/splitted/*.pdf') + listing.sort() + shutil.copyfile(listing.pop(0), base_path + self.uuid + "/complete.pdf") + + for pdf_file in listing: + print(pdf_file) + pdf_util(base_path + self.uuid + "/complete.pdf").merge_pdf_with_and_location(pdf_file, base_path + self.uuid + "/tmp_complete.pdf") + shutil.copyfile(base_path + self.uuid + "/tmp_complete.pdf", base_path + self.uuid + "/complete.pdf") + os.remove(base_path + self.uuid + "/tmp_complete.pdf") - """ def add_pdf(self, pdf_path): - if self.pdf_init: + if not self.pdf_init: shutil.copyfile(pdf_path, base_path + self.uuid + "/complete.pdf") + self.pdf_handler = pdf_util(base_path + self.uuid + "/complete.pdf") + self.pdf_init = True else: shutil.copyfile(pdf_path, base_path + self.uuid + "/tmp.pdf") pdf_util(base_path + self.uuid + "/complete.pdf").merge_pdf_with_and_location(base_path + self.uuid + "/tmp.pdf", base_path + self.uuid + "/tmp_complete.pdf") shutil.copyfile(base_path + self.uuid + "/tmp_complete.pdf", base_path + self.uuid + "/complete.pdf") os.remove(base_path + self.uuid + "/tmp_complete.pdf") os.remove(base_path + self.uuid + "/tmp.pdf") + self.pdf_handler = pdf_util(base_path + self.uuid + "/complete.pdf") - # Splitt files in all single Pages in Subdirectory... - """ \ No newline at end of file + self.pdf_handler.split_pdf_with_location(base_path + self.uuid + '/splitted/', True, True) + + def move_page(self, from_location, to_location): + try: + if from_location <= 0 or to_location <= 0: + raise ValueError("Pagenumber smaller/equal Zero") + + if from_location < to_location: + shutil.move(base_path + self.uuid + '/splitted/' + str(from_location).zfill(4) + '.pdf', base_path + self.uuid + '/splitted/tmp.pdf') + for num in range(from_location, to_location): + print(num) + shutil.move(base_path + self.uuid + '/splitted/' + str(num + 1).zfill(4) + '.pdf', base_path + self.uuid + '/splitted/' + str(num).zfill(4) + '.pdf') + shutil.move(base_path + self.uuid + '/splitted/tmp.pdf', base_path + self.uuid + '/splitted/' + str(to_location).zfill(4) + '.pdf') + + elif from_location > to_location: + shutil.move(base_path + self.uuid + '/splitted/' + str(from_location).zfill(4) + '.pdf', base_path + self.uuid + '/splitted/tmp.pdf') + for num in reversed(range(to_location, from_location)): + print(num) + print("move: " + str(num).zfill(4) + " | to: " + str(num + 1).zfill(4)) + shutil.move(base_path + self.uuid + '/splitted/' + str(num).zfill(4) + '.pdf', base_path + self.uuid + '/splitted/' + str(num + 1).zfill(4) + '.pdf') + shutil.move(base_path + self.uuid + '/splitted/tmp.pdf', base_path + self.uuid + '/splitted/' + str(to_location).zfill(4) + '.pdf') + else: + raise ValueError("from_location and to_location are the same") + + self.merge_all_single_pages() + + except Exception as e: + logging.error("Error while moving page: " + str(e)) + logging.error("Stacktrace: " + str(traceback.format_exc())) diff --git a/pdf_util/pdf_util.py b/pdf_util/pdf_util.py index 15e2d0f..9364990 100644 --- a/pdf_util/pdf_util.py +++ b/pdf_util/pdf_util.py @@ -24,22 +24,24 @@ class pdf_util: self.file_name = os.path.basename(file_path) self.file_name_wo_extension = os.path.splitext(os.path.basename(file_path))[0] - - def split_pdf_with_location(self, output_filepath, no_names=False): + def split_pdf_with_location(self, output_filepath, no_names=False, int_padding=False): out_filenames = [] os.makedirs(os.path.dirname(output_filepath), exist_ok=True) with open(self.file_path, 'rb') as pdf_file: pdf_reader = PdfReader(pdf_file) num_pages = len(pdf_reader.pages) for page_num in range(num_pages): - writer = PdfWriter() writer.add_page(pdf_reader.pages[page_num]) + str_page_num = str(page_num + 1) + if int_padding: + str_page_num = str_page_num.zfill(4) + if no_names: - out_filename = os.path.dirname(output_filepath) + '/' + str(page_num + 1) + '.pdf' + out_filename = os.path.dirname(output_filepath) + '/' + str_page_num + '.pdf' else: - out_filename = os.path.dirname(output_filepath) + '/' + self.file_name_wo_extension + '_' + str(page_num + 1) + '.pdf' + out_filename = os.path.dirname(output_filepath) + '/' + self.file_name_wo_extension + '_' + str_page_num + '.pdf' with open(out_filename, 'wb') as outfile: writer.write(outfile) @@ -48,10 +50,9 @@ class pdf_util: return out_filenames # Deprecate when pdf_project_manager takes effect - def split_pdf(self): + def split_pdf(self, int_padding=False): os.makedirs(os.path.dirname(self.file_path) + "/split_pdf", exist_ok=True) - return self.split_pdf_with_location(os.path.dirname(self.file_path) + "/split_pdf/", False) - + return self.split_pdf_with_location(os.path.dirname(self.file_path) + "/split_pdf/", False, int_padding) def merge_pdf_with_and_location(self, merge_file_path, output_filepath): os.makedirs(os.path.dirname(output_filepath), exist_ok=True) @@ -74,5 +75,3 @@ class pdf_util: def merge_pdf_with(self, merge_file_path, merged_name="merged"): os.makedirs(os.path.dirname(self.file_path) + "/merge_pdf", exist_ok=True) return self.merge_pdf_with_and_location(merge_file_path, os.path.dirname(self.file_path) + "/merge_pdf" + '/merger.pdf') - - diff --git a/tests/test_pdf_project_manager.py b/tests/test_pdf_project_manager.py index cda9ffe..573eed0 100644 --- a/tests/test_pdf_project_manager.py +++ b/tests/test_pdf_project_manager.py @@ -1,26 +1,116 @@ -import pytest import os +import shutil from pdf_util.pdf_project_manager import pdf_project_manager + def test_basic_object_creation(): test_pdf_project_manager = pdf_project_manager() print(test_pdf_project_manager.uuid) assert len(test_pdf_project_manager.uuid) == 36 + shutil.rmtree('/app/projects/' + test_pdf_project_manager.uuid) + def test_folder_creation(): test_pdf_project_manager = pdf_project_manager() print(test_pdf_project_manager.uuid) assert os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid) + shutil.rmtree('/app/projects/' + test_pdf_project_manager.uuid) -def test_Projecttest_1(): - """ - test_project = pdf_project_manager() +def test_merge_all_single_pages(): + test_pdf_project_manager = pdf_project_manager() print(test_pdf_project_manager.uuid) assert os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid) - """ - - assert True + test_pdf_project_manager.add_pdf("/app/tests/sample_pdfs/sample_10_page.pdf") + print(os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf')) + assert os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == os.stat("/app/tests/sample_pdfs/sample_10_page.pdf").st_size + + os.remove('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + assert not os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + test_pdf_project_manager.merge_all_single_pages() + print(os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf')) + assert os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 81291 + + shutil.rmtree('/app/projects/' + test_pdf_project_manager.uuid) + + +def test_add_multiple_pdfs(): + test_pdf_project_manager = pdf_project_manager() + print(test_pdf_project_manager.uuid) + assert os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid) + + test_pdf_project_manager.add_pdf("/app/tests/sample_pdfs/sample_10_page.pdf") + print(os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf')) + assert os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + print(os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid + '/splitted')) + assert os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid + '/splitted') + + print(os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf')) + assert os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf') + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size == 3167 + + test_pdf_project_manager.add_pdf("/app/tests/sample_pdfs/sample_2_page.pdf") + print(os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf')) + assert os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size == 3167 + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0011.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0011.pdf').st_size == 1804 + + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 48408 + + shutil.rmtree('/app/projects/' + test_pdf_project_manager.uuid) + + +def test_move_pages(): + test_pdf_project_manager = pdf_project_manager() + print(test_pdf_project_manager.uuid) + assert os.path.isdir('/app/projects/' + test_pdf_project_manager.uuid) + + test_pdf_project_manager.add_pdf("/app/tests/sample_pdfs/sample_10_page.pdf") + test_pdf_project_manager.add_pdf("/app/tests/sample_pdfs/sample_2_page.pdf") + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 48408 + + os.remove('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + assert not os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + test_pdf_project_manager.move_page(1, 4) + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0004.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0004.pdf').st_size == 3167 + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 83909 + + os.remove('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + assert not os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + test_pdf_project_manager.move_page(4, 1) + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0001.pdf').st_size == 3167 + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 83908 + + os.remove('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + assert not os.path.isfile('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf') + + test_pdf_project_manager.move_page(1, 12) + test_pdf_project_manager.move_page(12, 2) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/splitted/0002.pdf').st_size == 3167 + print(os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size) + assert os.stat('/app/projects/' + test_pdf_project_manager.uuid + '/complete.pdf').st_size == 83909 + + shutil.rmtree('/app/projects/' + test_pdf_project_manager.uuid) diff --git a/tests/test_pdf_util.py b/tests/test_pdf_util.py index 159ed5d..fb33e8d 100644 --- a/tests/test_pdf_util.py +++ b/tests/test_pdf_util.py @@ -1,15 +1,15 @@ -import pytest import os import shutil from pdf_util.pdf_util import pdf_util + def test_split_pdf(): # Single Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf() print(test_file) print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_1_page_1.pdf").st_size) assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_1_page_1.pdf").st_size == 69339 - + # Two Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_2_page.pdf").split_pdf() print(test_file) @@ -17,7 +17,7 @@ def test_split_pdf(): assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_1.pdf").st_size == 1804 print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_2.pdf").st_size) assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_2.pdf").st_size == 1405 - + # Ten Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_10_page.pdf").split_pdf() print(test_file) @@ -45,20 +45,61 @@ def test_split_pdf(): shutil.rmtree("/app/tests/sample_pdfs/split_pdf/") +def test_split_pdf_int_padding(): + # Single Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf(True) + print(test_file) + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_1_page_0001.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_1_page_0001.pdf").st_size == 69339 + + # Two Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_2_page.pdf").split_pdf(True) + print(test_file) + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_0001.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_0001.pdf").st_size == 1804 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_0002.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_2_page_0002.pdf").st_size == 1405 + + # Ten Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_10_page.pdf").split_pdf(True) + print(test_file) + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0001.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0001.pdf").st_size == 3167 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0002.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0002.pdf").st_size == 2888 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0003.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0003.pdf").st_size == 6670 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0004.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0004.pdf").st_size == 3043 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0005.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0005.pdf").st_size == 9968 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0006.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0006.pdf").st_size == 5367 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0007.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0007.pdf").st_size == 10093 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0008.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0008.pdf").st_size == 8578 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0009.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0009.pdf").st_size == 30188 + print(os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0010.pdf").st_size) + assert os.stat("/app/tests/sample_pdfs/split_pdf/sample_10_page_0010.pdf").st_size == 3789 + + shutil.rmtree("/app/tests/sample_pdfs/split_pdf/") + + def test_split_pdf_and_location(): # Single Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf_with_location("/tmp/test_directory/", False) print(test_file) print(os.stat("/tmp/test_directory/sample_1_page_1.pdf").st_size) assert os.stat("/tmp/test_directory/sample_1_page_1.pdf").st_size == 69339 - + test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf_with_location("/tmp/test_directory/", True) print(test_file) print(os.stat("/tmp/test_directory/1.pdf").st_size) assert os.stat("/tmp/test_directory/1.pdf").st_size == 69339 - - shutil.rmtree("/tmp/test_directory/") + shutil.rmtree("/tmp/test_directory/") # Two Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_2_page.pdf").split_pdf_with_location("/tmp/test_directory/", False) @@ -75,9 +116,8 @@ def test_split_pdf_and_location(): assert os.stat("/tmp/test_directory/1.pdf").st_size == 1804 print(os.stat("/tmp/test_directory/2.pdf").st_size) assert os.stat("/tmp/test_directory/2.pdf").st_size == 1405 - - shutil.rmtree("/tmp/test_directory/") + shutil.rmtree("/tmp/test_directory/") # Ten Pages test_file = pdf_util("/app/tests/sample_pdfs/sample_10_page.pdf").split_pdf_with_location("/tmp/test_directory/", False) @@ -129,6 +169,88 @@ def test_split_pdf_and_location(): shutil.rmtree("/tmp/test_directory/") +def test_split_pdf_and_location_int_padding(): + # Single Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf_with_location("/tmp/test_directory/", False, True) + print(test_file) + print(os.stat("/tmp/test_directory/sample_1_page_0001.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_1_page_0001.pdf").st_size == 69339 + + test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").split_pdf_with_location("/tmp/test_directory/", True, True) + print(test_file) + print(os.stat("/tmp/test_directory/0001.pdf").st_size) + assert os.stat("/tmp/test_directory/0001.pdf").st_size == 69339 + + shutil.rmtree("/tmp/test_directory/") + + # Two Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_2_page.pdf").split_pdf_with_location("/tmp/test_directory/", False, True) + print(test_file) + print(os.stat("/tmp/test_directory/sample_2_page_0001.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_2_page_0001.pdf").st_size == 1804 + print(os.stat("/tmp/test_directory/sample_2_page_0002.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_2_page_0002.pdf").st_size == 1405 + + # Two Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_2_page.pdf").split_pdf_with_location("/tmp/test_directory/", True, True) + print(test_file) + print(os.stat("/tmp/test_directory/0001.pdf").st_size) + assert os.stat("/tmp/test_directory/0001.pdf").st_size == 1804 + print(os.stat("/tmp/test_directory/0002.pdf").st_size) + assert os.stat("/tmp/test_directory/0002.pdf").st_size == 1405 + + shutil.rmtree("/tmp/test_directory/") + + # Ten Pages + test_file = pdf_util("/app/tests/sample_pdfs/sample_10_page.pdf").split_pdf_with_location("/tmp/test_directory/", False, True) + print(test_file) + print(os.stat("/tmp/test_directory/sample_10_page_0001.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0001.pdf").st_size == 3167 + print(os.stat("/tmp/test_directory/sample_10_page_0002.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0002.pdf").st_size == 2888 + print(os.stat("/tmp/test_directory/sample_10_page_0003.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0003.pdf").st_size == 6670 + print(os.stat("/tmp/test_directory/sample_10_page_0004.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0004.pdf").st_size == 3043 + print(os.stat("/tmp/test_directory/sample_10_page_0005.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0005.pdf").st_size == 9968 + print(os.stat("/tmp/test_directory/sample_10_page_0006.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0006.pdf").st_size == 5367 + print(os.stat("/tmp/test_directory/sample_10_page_0007.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0007.pdf").st_size == 10093 + print(os.stat("/tmp/test_directory/sample_10_page_0008.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0008.pdf").st_size == 8578 + print(os.stat("/tmp/test_directory/sample_10_page_0009.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0009.pdf").st_size == 30188 + print(os.stat("/tmp/test_directory/sample_10_page_0010.pdf").st_size) + assert os.stat("/tmp/test_directory/sample_10_page_0010.pdf").st_size == 3789 + + test_file = pdf_util("/app/tests/sample_pdfs/sample_10_page.pdf").split_pdf_with_location("/tmp/test_directory/", True, True) + print(test_file) + print(os.stat("/tmp/test_directory/0001.pdf").st_size) + assert os.stat("/tmp/test_directory/0001.pdf").st_size == 3167 + print(os.stat("/tmp/test_directory/0002.pdf").st_size) + assert os.stat("/tmp/test_directory/0002.pdf").st_size == 2888 + print(os.stat("/tmp/test_directory/0003.pdf").st_size) + assert os.stat("/tmp/test_directory/0003.pdf").st_size == 6670 + print(os.stat("/tmp/test_directory/0004.pdf").st_size) + assert os.stat("/tmp/test_directory/0004.pdf").st_size == 3043 + print(os.stat("/tmp/test_directory/0005.pdf").st_size) + assert os.stat("/tmp/test_directory/0005.pdf").st_size == 9968 + print(os.stat("/tmp/test_directory/0006.pdf").st_size) + assert os.stat("/tmp/test_directory/0006.pdf").st_size == 5367 + print(os.stat("/tmp/test_directory/0007.pdf").st_size) + assert os.stat("/tmp/test_directory/0007.pdf").st_size == 10093 + print(os.stat("/tmp/test_directory/0008.pdf").st_size) + assert os.stat("/tmp/test_directory/0008.pdf").st_size == 8578 + print(os.stat("/tmp/test_directory/0009.pdf").st_size) + assert os.stat("/tmp/test_directory/0009.pdf").st_size == 30188 + print(os.stat("/tmp/test_directory/0010.pdf").st_size) + assert os.stat("/tmp/test_directory/0010.pdf").st_size == 3789 + + shutil.rmtree("/tmp/test_directory/") + + def test_merge_pdf_with(): test_file = pdf_util("/app/tests/sample_pdfs/sample_1_page.pdf").merge_pdf_with("/app/tests/sample_pdfs/sample_2_page.pdf") print(test_file) @@ -168,10 +290,12 @@ def test_merge_pdf_with_and_location(): shutil.rmtree("/tmp/test_directory/") + def test_rotate_pages(): # Write test code to verify the behavior of the rotate_pages method pass + def test_ocr_pages(): # Write test code to verify the behavior of the rotate_pages method pass