diff --git a/tests/admin.py b/tests/admin.py index efa4e98..0fdb660 100644 --- a/tests/admin.py +++ b/tests/admin.py @@ -3,7 +3,7 @@ from versatileimagefield.widgets import VersatileImagePPOISelectWidget -from .models import VersatileImageTestModel +from .models import VersatileImageTestModel, VersatileImageWidgetTestModel class VersatileImageTestModelForm(ModelForm): @@ -27,3 +27,4 @@ class VersatileImageTestModelAdmin(admin.ModelAdmin): admin.site.register(VersatileImageTestModel, VersatileImageTestModelAdmin) +admin.site.register(VersatileImageWidgetTestModel) diff --git a/tests/fixtures/versatileimagefield.json b/tests/fixtures/versatileimagefield.json index 305dffb..dbcd295 100644 --- a/tests/fixtures/versatileimagefield.json +++ b/tests/fixtures/versatileimagefield.json @@ -98,5 +98,17 @@ }, "model": "tests.versatileimagetestmodel", "pk": 9 +}, +{ + "fields": { + "image": "python-logo.png", + "image_no_ppoi": "python-logo.jpg", + "optional_image": "exif-orientation-examples/Landscape_8.jpg", + "optional_image_with_ppoi": "exif-orientation-examples/Landscape_6.jpg", + "ppoi": "0.5x0.5", + "optional_image_with_ppoi_ppoi": "1.0x1.0" + }, + "model": "tests.versatileimagewidgettestmodel", + "pk": 1 } ] diff --git a/tests/models.py b/tests/models.py index ef70e01..a12d466 100644 --- a/tests/models.py +++ b/tests/models.py @@ -53,3 +53,25 @@ class VersatileImageTestModel(models.Model): blank=True ) ppoi = PPOIField() + + +class VersatileImageWidgetTestModel(models.Model): + """A model for testing VersatileImageField widgets""" + image = VersatileImageField( + upload_to='./', + ppoi_field='ppoi', + ) + image_no_ppoi = VersatileImageField( + upload_to='./', + ) + optional_image = VersatileImageField( + upload_to='./', + blank=True + ) + optional_image_with_ppoi = VersatileImageField( + upload_to='./', + blank=True, + ppoi_field='optional_image_with_ppoi_ppoi' + ) + ppoi = PPOIField() + optional_image_with_ppoi_ppoi = PPOIField() diff --git a/tests/tests.py b/tests/tests.py index 282610c..f49093f 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -19,7 +19,7 @@ from django.test import Client, TestCase from django.test.utils import override_settings from django.utils._os import upath -from django.utils.six.moves import cPickle as pickle +from django.utils.six.moves import cPickle from PIL import Image from versatileimagefield.files import VersatileImageFileDescriptor @@ -52,7 +52,7 @@ from versatileimagefield.versatileimagefield import CroppedImage, InvertImage from .forms import VersatileImageTestModelForm -from .models import VersatileImageTestModel +from .models import VersatileImageTestModel, VersatileImageWidgetTestModel from .serializers import VersatileImageTestModelSerializer @@ -63,6 +63,7 @@ def setUp(self): self.jpg = VersatileImageTestModel.objects.get(img_type='jpg') self.png = VersatileImageTestModel.objects.get(img_type='png') self.gif = VersatileImageTestModel.objects.get(img_type='gif') + self.widget_test = VersatileImageWidgetTestModel.objects.get(pk=1) password = '12345' user = User.objects.create_user( username='test', @@ -351,27 +352,156 @@ def test_widget_javascript(self): Ensures the VersatileImagePPOIClickWidget widget loads appropriately and its image preview is available """ - response = self.client.get('/admin/tests/versatileimagetestmodel/1/') + response = self.client.get( + '/admin/tests/versatileimagewidgettestmodel/1/' + ) self.assertEqual(response.status_code, 200) + # Test required field with PPOI + self.assertInHTML( + ( + """ +
+ """ + ), + str(response.content) + ) + # Test required field no PPOI + self.assertInHTML( + ( + """ +