From c089561f48ad622541429ae1400898001579b674 Mon Sep 17 00:00:00 2001 From: Johannes Wilm Date: Tue, 16 Aug 2022 13:40:25 +0200 Subject: [PATCH] add test for nondefault image names, fixes #38 --- avatar/models.py | 4 ++-- tests/data/django #3.png | Bin 0 -> 2349 bytes tests/tests.py | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 tests/data/django #3.png diff --git a/avatar/models.py b/avatar/models.py index 0b16878..eca4f67 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -8,14 +8,14 @@ from django.core.files.base import ContentFile from django.core.files.storage import get_storage_class from django.db import models from django.db.models import signals -from django.utils.encoding import force_str +from django.utils.encoding import force_bytes, force_str from django.utils.module_loading import import_string from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ from PIL import Image, ImageOps from avatar.conf import settings -from avatar.utils import force_bytes, get_username, invalidate_cache +from avatar.utils import get_username, invalidate_cache avatar_storage = get_storage_class(settings.AVATAR_STORAGE)() diff --git a/tests/data/django #3.png b/tests/data/django #3.png new file mode 100644 index 0000000000000000000000000000000000000000..82474cbfde924b2a7607153ae7a1e24f4fae2ed0 GIT binary patch literal 2349 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 T62BAR00000NkvXXu0mjf@QQ0i literal 0 HcmV?d00001 diff --git a/tests/tests.py b/tests/tests.py index d32bf79..79d6874 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -312,6 +312,12 @@ class AvatarTests(TestCase): self.assertLess(root_mean_square_difference(image_with_exif, image_no_exif), 1) + def test_automatic_thumbnail_creation_nondefault_filename(self): + upload_helper(self, "django #3.png") + self.assertMediaFileExists( + f"/avatars/{self.user.id}/resized/80/80/django_3.png" + ) + def test_has_avatar_False_if_no_avatar(self): self.assertFalse(avatar_tags.has_avatar(self.user))