mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import unicode_literals
 | |
| 
 | |
| import os
 | |
| import unittest
 | |
| 
 | |
| from django.core.files.uploadedfile import SimpleUploadedFile
 | |
| from django.forms import ImageField
 | |
| from django.test import SimpleTestCase
 | |
| from django.utils._os import upath
 | |
| 
 | |
| try:
 | |
|     from PIL import Image
 | |
| except ImportError:
 | |
|     Image = None
 | |
| 
 | |
| 
 | |
| def get_img_path(path):
 | |
|     return os.path.join(os.path.abspath(os.path.join(upath(__file__), '..', '..')), 'tests', path)
 | |
| 
 | |
| 
 | |
| @unittest.skipUnless(Image, "Pillow is required to test ImageField")
 | |
| class ImageFieldTest(SimpleTestCase):
 | |
| 
 | |
|     def test_imagefield_annotate_with_image_after_clean(self):
 | |
|         f = ImageField()
 | |
| 
 | |
|         img_path = get_img_path('filepath_test_files/1x1.png')
 | |
|         with open(img_path, 'rb') as img_file:
 | |
|             img_data = img_file.read()
 | |
| 
 | |
|         img_file = SimpleUploadedFile('1x1.png', img_data)
 | |
|         img_file.content_type = 'text/plain'
 | |
| 
 | |
|         uploaded_file = f.clean(img_file)
 | |
| 
 | |
|         self.assertEqual('PNG', uploaded_file.image.format)
 | |
|         self.assertEqual('image/png', uploaded_file.content_type)
 | |
| 
 | |
|     def test_imagefield_annotate_with_bitmap_image_after_clean(self):
 | |
|         """
 | |
|         This also tests the situation when Pillow doesn't detect the MIME type
 | |
|         of the image (#24948).
 | |
|         """
 | |
|         from PIL.BmpImagePlugin import BmpImageFile
 | |
|         try:
 | |
|             Image.register_mime(BmpImageFile.format, None)
 | |
|             f = ImageField()
 | |
|             img_path = get_img_path('filepath_test_files/1x1.bmp')
 | |
|             with open(img_path, 'rb') as img_file:
 | |
|                 img_data = img_file.read()
 | |
| 
 | |
|             img_file = SimpleUploadedFile('1x1.bmp', img_data)
 | |
|             img_file.content_type = 'text/plain'
 | |
| 
 | |
|             uploaded_file = f.clean(img_file)
 | |
| 
 | |
|             self.assertEqual('BMP', uploaded_file.image.format)
 | |
|             self.assertIsNone(uploaded_file.content_type)
 | |
|         finally:
 | |
|             Image.register_mime(BmpImageFile.format, 'image/bmp')
 |