浏览代码

Refs #19215 -- Fixed admin_widgets tests if Pillow isn't installed.

Follow up to c0fc1b5302f5d9d82e2255fb5758321fbac34949.
Mariusz Felisiak 2 年之前
父节点
当前提交
d559cb02da
共有 2 个文件被更改,包括 14 次插入5 次删除
  1. 11 5
      tests/admin_widgets/models.py
  2. 3 0
      tests/admin_widgets/tests.py

+ 11 - 5
tests/admin_widgets/models.py

@@ -5,8 +5,13 @@ from django.contrib.auth.models import User
 from django.core.files.storage import FileSystemStorage
 from django.db import models
 
-temp_storage_dir = tempfile.mkdtemp()
-temp_storage = FileSystemStorage(temp_storage_dir)
+try:
+    from PIL import Image
+except ImportError:
+    Image = None
+else:
+    temp_storage_dir = tempfile.mkdtemp()
+    temp_storage = FileSystemStorage(temp_storage_dir)
 
 
 class MyFileField(models.FileField):
@@ -182,9 +187,10 @@ class Advisor(models.Model):
 
 class Student(models.Model):
     name = models.CharField(max_length=255)
-    photo = models.ImageField(
-        storage=temp_storage, upload_to="photos", blank=True, null=True
-    )
+    if Image:
+        photo = models.ImageField(
+            storage=temp_storage, upload_to="photos", blank=True, null=True
+        )
 
     class Meta:
         ordering = ("name",)

+ 3 - 0
tests/admin_widgets/tests.py

@@ -3,6 +3,7 @@ import os
 import re
 from datetime import datetime, timedelta
 from importlib import import_module
+from unittest import skipUnless
 
 try:
     import zoneinfo
@@ -38,6 +39,7 @@ from .models import (
     Company,
     Event,
     Honeycomb,
+    Image,
     Individual,
     Inventory,
     Member,
@@ -1774,6 +1776,7 @@ class RelatedFieldWidgetSeleniumTests(AdminWidgetSeleniumTestCase):
         self.assertEqual(profiles[0].user.username, username_value)
 
 
+@skipUnless(Image, "Pillow not installed")
 class ImageFieldWidgetsSeleniumTests(AdminWidgetSeleniumTestCase):
     def test_clearablefileinput_widget(self):
         from selenium.webdriver.common.by import By