add tests for the THUMBNAIL_STORAGE and THUMBNAIL_STORAGE_ALIAS

This commit is contained in:
Petr Dlouhý 2024-01-23 16:11:35 +01:00
parent 5d83c0af17
commit fc489a8d98
4 changed files with 35 additions and 1 deletions

View file

@ -1,19 +1,26 @@
import os
import django
from django.core.files import File
from django.core.files.uploadedfile import UploadedFile
from django.test import TestCase
from categories.models import Category
from example.test_storages import MyTestStorage, MyTestStorageAlias
class TestCategoryThumbnail(TestCase):
def test_thumbnail(self):
file_name = "test_image.jpg"
with open(os.path.join(os.path.dirname(__file__), file_name), "rb") as f:
test_image = UploadedFile(File(f), content_type="image/jpeg")
category = Category.objects.create(name="Test Category", slug="test-category", thumbnail=test_image)
self.assertEqual(category.pk, 1)
self.assertEqual(category.thumbnail_width, 640)
self.assertEqual(category.thumbnail_height, 480)
if django.VERSION >= (4, 2):
self.assertEqual(category.thumbnail.storage.__class__, MyTestStorageAlias)
else:
self.assertEqual(category.thumbnail.storage.__class__, MyTestStorage)

View file

@ -98,6 +98,20 @@ TEMPLATES = [
},
]
STORAGES = {
"default": {
"BACKEND": "django.core.files.storage.FileSystemStorage",
},
"staticfiles": {
"BACKEND": "django.core.files.storage.FileSystemStorage",
},
"thumbnails": {
"BACKEND": "example.test_storages.MyTestStorageAlias",
},
}
CATEGORIES_SETTINGS = {
"ALLOW_SLUG_CHANGE": True,
"RELATION_MODELS": ["simpletext.simpletext", "flatpages.flatpage"],
@ -115,6 +129,8 @@ CATEGORIES_SETTINGS = {
{"name": "more_categories", "related_name": "more_cats"},
),
},
"THUMBNAIL_STORAGE": "example.test_storages.MyTestStorage",
"THUMBNAIL_STORAGE_ALIAS": "thumbnails",
}
TEST_RUNNER = "django.test.runner.DiscoverRunner"

View file

@ -99,6 +99,7 @@ TEMPLATES = [
}
]
CATEGORIES_SETTINGS = {
"ALLOW_SLUG_CHANGE": True,
"RELATION_MODELS": ["simpletext.simpletext", "flatpages.flatpage"],

10
example/test_storages.py Normal file
View file

@ -0,0 +1,10 @@
# Storages used for testing THUMBNAIL_STORAGE and THUMBNAIL_STORAGE_ALIAS
from django.core.files.storage import FileSystemStorage
class MyTestStorage(FileSystemStorage):
pass
class MyTestStorageAlias(FileSystemStorage):
pass