From 9fd9f8bbb23407254aa0ba851dbcc8e7f696c3de Mon Sep 17 00:00:00 2001 From: safu9 Date: Tue, 3 Apr 2018 12:06:08 +0900 Subject: Fixed #29284 -- Made ImageField render with accept="image/*"' HTML attribute. --- tests/forms_tests/field_tests/test_imagefield.py | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'tests/forms_tests') 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, '') + + 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, '') + + def test_widge_attrs_accept_false(self): + f = ImageField(widget=FileInput(attrs={'accept': False})) + self.assertEqual(f.widget_attrs(f.widget), {}) + self.assertWidgetRendersTo(f, '') -- cgit v1.3