aboutsummaryrefslogtreecommitdiffstats
path: root/pyblackbird_cc/resources/tests/test_file_processing.py
diff options
context:
space:
mode:
authorMatthew Lemon <y@yulqen.org>2024-10-15 21:01:31 +0100
committerMatthew Lemon <y@yulqen.org>2024-10-15 21:01:31 +0100
commiteeaddb27560d723ca7d61359744ceb2709fccd2d (patch)
tree04ddbc49ae7b73d5f5a9e1716d7227aecd3b9f85 /pyblackbird_cc/resources/tests/test_file_processing.py
parent7a3044c859043837e6c7c95bb4894d04e9b2cbc2 (diff)
Renamed from pyblackbird_cc to alphabetlearning - everywhere
Diffstat (limited to 'pyblackbird_cc/resources/tests/test_file_processing.py')
-rw-r--r--pyblackbird_cc/resources/tests/test_file_processing.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/pyblackbird_cc/resources/tests/test_file_processing.py b/pyblackbird_cc/resources/tests/test_file_processing.py
deleted file mode 100644
index 7b95a9d..0000000
--- a/pyblackbird_cc/resources/tests/test_file_processing.py
+++ /dev/null
@@ -1,134 +0,0 @@
-from pathlib import Path
-
-from django.conf import settings
-from django.contrib.auth import get_user_model
-from django.core.files.uploadedfile import InMemoryUploadedFile
-from django.core.files.uploadedfile import SimpleUploadedFile
-from django.core.files.uploadedfile import TemporaryUploadedFile
-from django.test import TestCase
-from django.urls import reverse
-
-from .. import services
-from ..utils import _get_pdf_collection_type
-
-
-def test_detect_snapshotted_pdf_collection():
- single_pdf_single_page = [["toss"]]
- single_pdf_multi_page = [["toss2", "toss8"]]
- multi_pdf_single_page = [["toss"], ["toss2"]]
- multi_pdf_multi_page = [["toss", "toss2"], ["toss", "toss2"]]
-
- assert _get_pdf_collection_type(single_pdf_single_page) == "SINGLE_PDF_SINGLE_PAGE"
- assert _get_pdf_collection_type(single_pdf_multi_page) == "SINGLE_PDF_MULTI_PAGE"
- assert _get_pdf_collection_type(multi_pdf_single_page) == "MULTI_PDF_SINGLE_PAGE"
- assert _get_pdf_collection_type(multi_pdf_multi_page) == "MULTI_PDF_MULTI_PAGE"
-
-
-class PDFFileUploadTestCase(TestCase):
- def setUp(self):
- self.url = reverse("resources:create_resource")
- self.test_file_path = Path(
- settings.BASE_DIR / "pyblackbird_cc" / "resources/tests/testdata/test_small_file.pdf"
- )
-
- # Create a test user
- self.email = "testuser@example.com"
- self.password = "testpassword"
- self.user = get_user_model().objects.create_user(
- email=self.email,
- password=self.password,
- )
-
- def test_file_upload(self):
- """
- Test that a file can be uploaded successfully using our create_resource view.
- """
- self.client.login(
- email=self.email,
- password=self.password,
- ) # Log in the test user
-
- with open(self.test_file_path, "rb") as file:
- uploaded_file = SimpleUploadedFile(
- "test_file.pdf",
- file.read(),
- content_type="application/pdf",
- )
-
- response = self.client.post(self.url, {"pdf_files": [uploaded_file]})
-
- # Check if the response is OK
- self.assertEqual(response.status_code, 200)
-
- def test_file_upload_with_upload_handlers(self):
- """
- This test does not test my code but the behavior of the Django file upload handlers.
- """
- self.client.login(
- email=self.email,
- password=self.password,
- ) # Log in the test user
-
- with open(self.test_file_path, "rb") as file:
- uploaded_file = SimpleUploadedFile(
- "test_file.pdf",
- file.read(),
- content_type="application/pdf",
- )
-
- response = self.client.post(self.url, {"pdf_files": [uploaded_file]})
-
- self.assertEqual(response.status_code, 200)
-
- # Check if the uploaded file was handled by MemoryFileUploadHandler or TemporaryFileUploadHandler
- uploaded_files = response.wsgi_request.FILES.getlist("pdf_files")
- self.assertEqual(len(uploaded_files), 1)
-
- # We should expect an instance of InMemoryUploadedFile here because test_small_file.pdf is less than 2.5 MB
- self.assertIsInstance(
- uploaded_files[0],
- (SimpleUploadedFile, TemporaryUploadedFile, InMemoryUploadedFile),
- )
-
- def test_uploaded_pdf_file_metadata(self):
- """
- This test does not test my application code, but rather tests the
- behavior of the Django file upload handlers.
- """
- self.client.login(
- email=self.email,
- password=self.password,
- ) # Log in the test user
-
- with open(self.test_file_path, "rb") as file:
- uploaded_file = SimpleUploadedFile(
- "test_file.pdf",
- file.read(),
- content_type="application/pdf",
- )
-
- response = self.client.post(self.url, {"pdf_files": [uploaded_file]})
-
- self.assertEqual(
- response.status_code,
- 200,
- )
-
- # Extract metadata from the uploaded file
- pdf_metadata_from_path = services.get_pdf_metadata_from_path(self.test_file_path)
-
- # Get the number of pages in the PDF - is 4
- self.assertEqual(pdf_metadata_from_path.n_pages, 4)
-
- # Get the file size in bytes
- self.assertGreater(pdf_metadata_from_path.file_size, 0)
-
- self.assertLess(
- pdf_metadata_from_path.file_size,
- 5 * 1024 * 1024,
- ) # Assuming a maximum file size of 5 MB
-
- # self.assertTrue(services.export_pdf_pages_as_images_temp_dir(self.test_file_path))
- # capture the output of the export_pdf_pages_as_images_temp_dir function coroutine
- files = list(services.export_pages_as_images(self.test_file_path))
- self.assertEqual(len(files), 4)