summaryrefslogtreecommitdiff
path: root/tests/forms_tests/field_tests/test_imagefield.py
diff options
context:
space:
mode:
authorsafu9 <atlantis.19980911@gmail.com>2018-04-03 12:06:08 +0900
committerTim Graham <timograham@gmail.com>2018-04-04 13:16:03 -0400
commit9fd9f8bbb23407254aa0ba851dbcc8e7f696c3de (patch)
treeebb038c2c4aa9c2c338182d223b86927f5ce2cf6 /tests/forms_tests/field_tests/test_imagefield.py
parentcf8fc4797458b2c788ecf0be0afca6b0512ce1c0 (diff)
Fixed #29284 -- Made ImageField render with accept="image/*"' HTML attribute.
Diffstat (limited to 'tests/forms_tests/field_tests/test_imagefield.py')
-rw-r--r--tests/forms_tests/field_tests/test_imagefield.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/forms_tests/field_tests/test_imagefield.py b/tests/forms_tests/field_tests/test_imagefield.py
index 0a0f60440e..e38abc332d 100644
--- a/tests/forms_tests/field_tests/test_imagefield.py
+++ b/tests/forms_tests/field_tests/test_imagefield.py
@@ -2,9 +2,13 @@ import os
import unittest
from django.core.files.uploadedfile import SimpleUploadedFile
-from django.forms import ImageField, ValidationError
+from django.forms import (
+ ClearableFileInput, FileInput, ImageField, ValidationError, Widget,
+)
from django.test import SimpleTestCase
+from . import FormFieldAssertionsMixin
+
try:
from PIL import Image
except ImportError:
@@ -16,7 +20,7 @@ def get_img_path(path):
@unittest.skipUnless(Image, "Pillow is required to test ImageField")
-class ImageFieldTest(SimpleTestCase):
+class ImageFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_imagefield_annotate_with_image_after_clean(self):
f = ImageField()
@@ -64,3 +68,21 @@ class ImageFieldTest(SimpleTestCase):
img_file = SimpleUploadedFile('1x1.txt', img_data)
with self.assertRaisesMessage(ValidationError, "File extension 'txt' is not allowed."):
f.clean(img_file)
+
+ def test_widget_attrs_default_accept(self):
+ f = ImageField()
+ # Nothing added for non-FileInput widgets.
+ self.assertEqual(f.widget_attrs(Widget()), {})
+ self.assertEqual(f.widget_attrs(FileInput()), {'accept': 'image/*'})
+ self.assertEqual(f.widget_attrs(ClearableFileInput()), {'accept': 'image/*'})
+ self.assertWidgetRendersTo(f, '<input type="file" name="f" accept="image/*" required id="id_f" />')
+
+ def test_widge_attrs_accept_specified(self):
+ f = ImageField(widget=FileInput(attrs={'accept': 'image/png'}))
+ self.assertEqual(f.widget_attrs(f.widget), {})
+ self.assertWidgetRendersTo(f, '<input type="file" name="f" accept="image/png" required id="id_f" />')
+
+ def test_widge_attrs_accept_false(self):
+ f = ImageField(widget=FileInput(attrs={'accept': False}))
+ self.assertEqual(f.widget_attrs(f.widget), {})
+ self.assertWidgetRendersTo(f, '<input type="file" name="f" required id="id_f" />')