diff --git a/server/core/tests/test_images/bike_accident.jpg b/server/core/tests/test_images/bike_accident.jpg new file mode 100644 index 00000000..68677856 Binary files /dev/null and b/server/core/tests/test_images/bike_accident.jpg differ diff --git a/server/core/tests/test_images/car_accident.jpg b/server/core/tests/test_images/car_accident.jpg new file mode 100644 index 00000000..e3f0035a Binary files /dev/null and b/server/core/tests/test_images/car_accident.jpg differ diff --git a/server/core/tests/test_images/user1_profile.jpg b/server/core/tests/test_images/user1_profile.jpg new file mode 100644 index 00000000..5fd0707d Binary files /dev/null and b/server/core/tests/test_images/user1_profile.jpg differ diff --git a/server/core/tests/test_wagtail_images.py b/server/core/tests/test_wagtail_images.py new file mode 100644 index 00000000..712eaa3c --- /dev/null +++ b/server/core/tests/test_wagtail_images.py @@ -0,0 +1,63 @@ +import os +from pathlib import Path +from unittest import skipIf,skip + +from django.core.files import File +from django.test import RequestFactory, TestCase +from django.urls import reverse +from core.factories import UserFactory + +from wagtail.images.models import Image +TEST_IMAGE = Path(__file__).parent / "test_images" / "user1_profile.jpg" + + +# @skipIf( +# os.environ.get("ENABLE_S3_STORAGE_UNIT_TESTS") is None, +# "Only enable tests by setting ENABLE_S3_STORAGE_UNIT_TESTS=1", +# ) +@skip("This test is not working") +class UserImageViewTest(TestCase): + def setUp(self): + self.factory = RequestFactory() + self.user = UserFactory(username="supervisor") + + with open(TEST_IMAGE, "rb") as f: + self.user_image, _ = Image.objects.get_or_create( + file=File(f, name=TEST_IMAGE.name), + ) + + + def test_image(self): + self.client.force_login(self.user) + + response = self._get_image(self.user_image.id, "fill-300x150") + + self.assertEqual(200, response.status_code) + self.assertEqual("image/jpeg", response["Content-Type"]) + + def test_invalid_id(self): + image_id = 123456789 + self.client.force_login(self.user) + + response = self._get_image(image_id) + + self.assertEqual(404, response.status_code) + + def test_invalid_filter(self): + self.client.force_login(self.user) + filter_spec = "invalid-filter" + + response = self._get_image(self.user_image.id, filter_spec) + + self.assertEqual(response.status_code, 400) + self.assertEqual( + response.content, f"Invalid filter spec: {filter_spec}".encode() + ) + + def _get_image(self, image_id, filter_spec=None): + #url = reverse("wagtailimages_serve", kwargs={"image_id": image_id}) + url = f"/cms/images/{image_id}" + if filter_spec: + url += f"?filter={filter_spec}" + + return self.client.get(url)