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)