From 22668cdc07aa08b49216b3246775e3a39817aa86 Mon Sep 17 00:00:00 2001 From: Gabo Date: Tue, 16 Jul 2024 12:33:04 +0200 Subject: [PATCH] Add TOC endpoint tests --- src/app.py | 11 ++++------- src/test_end_to_end.py | 29 +++++++++++++++++++++++++++++ test_pdfs/toc-test.pdf | Bin 0 -> 44462 bytes 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 test_pdfs/toc-test.pdf diff --git a/src/app.py b/src/app.py index 908bc65..2920a3e 100755 --- a/src/app.py +++ b/src/app.py @@ -28,7 +28,10 @@ async def error(): @app.post("/") @catch_exceptions -async def run(file: UploadFile = File(...)): +async def run(file: UploadFile = File(...), fast: bool = Form(False)): + if fast: + return await run_in_threadpool(analyze_pdf_fast, file.file.read()) + return await run_in_threadpool(analyze_pdf, file.file.read(), "") @@ -44,12 +47,6 @@ async def get_xml_by_name(xml_file_name: str): return await run_in_threadpool(get_xml, xml_file_name) -@app.post("/fast") -@catch_exceptions -async def run_fast(file: UploadFile = File(...)): - return await run_in_threadpool(analyze_pdf_fast, file.file.read()) - - @app.post("/toc") @catch_exceptions async def get_toc_endpoint(file: UploadFile = File(...), fast: bool = Form(False)): diff --git a/src/test_end_to_end.py b/src/test_end_to_end.py index df22a0d..f2e61c1 100644 --- a/src/test_end_to_end.py +++ b/src/test_end_to_end.py @@ -149,3 +149,32 @@ def test_chinese_fast(self): results = requests.post(f"{self.service_url}", files=files, data=data) self.assertEqual(200, results.status_code) + + def test_toc(self): + with open(f"{ROOT_PATH}/test_pdfs/toc-test.pdf", "rb") as stream: + files = {"file": stream} + + response = requests.post(f"{self.service_url}/toc", files=files) + + response_json = response.json() + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response_json), 5) + self.assertEqual(response_json[0]["label"], "TEST") + self.assertEqual(response_json[0]["indentation"], 0) + self.assertEqual(response_json[-1]["label"], "C. TITLE LONGER") + self.assertEqual(response_json[-1]["indentation"], 2) + + def test_toc_fast(self): + with open(f"{ROOT_PATH}/test_pdfs/toc-test.pdf", "rb") as stream: + files = {"file": stream} + data = {"fast": "True"} + + response = requests.post(f"{self.service_url}/toc", files=files, data=data) + + response_json = response.json() + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response_json), 5) + self.assertEqual(response_json[0]["label"], "TEST") + self.assertEqual(response_json[0]["indentation"], 0) + self.assertEqual(response_json[-1]["label"], "C. TITLE LONGER") + self.assertEqual(response_json[-1]["indentation"], 2) diff --git a/test_pdfs/toc-test.pdf b/test_pdfs/toc-test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d74531ac1b27c38098d9d6fd7d4dcdc01d035a80 GIT binary patch literal 44462 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