def test_resource_image_view(client, space_resource): jpeg = create_resource_image(space_resource, size=(300, 300), format="JPEG") png = create_resource_image(space_resource, size=(300, 300), format="PNG") assert png.image_format == "PNG" resp = client.get(reverse("resource-image-view", kwargs={"pk": jpeg.pk})) assert resp["Content-Type"] == "image/jpeg" resp = client.get(reverse("resource-image-view", kwargs={"pk": png.pk})) assert resp["Content-Type"] == "image/png"
def test_only_one_main_image(space_resource): i1 = create_resource_image(space_resource, type="main") assert i1.type == "main" i2 = create_resource_image(space_resource, type="main") assert i2.type == "main" # The first image should have been turned non-main after the new main image was created assert ResourceImage.objects.get(pk=i1.pk).type == "other" i3 = create_resource_image(space_resource, type="other") assert i3.type == "other" # But adding a new non-main image should not have dethroned i2 from being main assert ResourceImage.objects.get(pk=i2.pk).type == "main"
def test_resource_image_view_thumbing(client, space_resource): png = create_resource_image(space_resource, size=(300, 300), format="PNG") resp = client.get(reverse("resource-image-view", kwargs={"pk": png.pk}), data={"dim": "50x50"}) assert resp["Content-Type"] == "image/jpeg" # Thumbnails should be PNG even if source data isn't img_data = resp.getvalue() assert Image.open(BytesIO(img_data)).size == (50, 50) # Rudimentary checking of invalid `dim`s -- better testing in `test_dimension_string_parsing` assert client.get(reverse("resource-image-view", kwargs={"pk": png.pk}), data={"dim": "-x3"}).status_code == 400
def test_resource_image_view_thumbing(client, space_resource): png = create_resource_image(space_resource, size=(300, 300), format="PNG") resp = client.get(reverse("resource-image-view", kwargs={"pk": png.pk}), data={"dim": "50x50"}) assert resp[ "Content-Type"] == "image/jpeg" # Thumbnails should be PNG even if source data isn't img_data = resp.getvalue() assert Image.open(BytesIO(img_data)).size == (50, 50) # Rudimentary checking of invalid `dim`s -- better testing in `test_dimension_string_parsing` assert client.get(reverse("resource-image-view", kwargs={"pk": png.pk}), data={ "dim": "-x3" }).status_code == 400