diff options
Diffstat (limited to 'pyblackbird_cc/resources/tests/test_file_processing.py')
-rw-r--r-- | pyblackbird_cc/resources/tests/test_file_processing.py | 134 |
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) |