|
2 | 2 | import logging
|
3 | 3 | import operator
|
4 | 4 | import os
|
5 |
| -import random |
| 5 | +import re |
6 | 6 | import shutil
|
7 | 7 | import unittest
|
8 |
| -from django.core.files.storage import Storage, default_storage |
9 |
| -from django.core.urlresolvers import reverse |
| 8 | +from PIL import Image |
| 9 | +from django.core.files.storage import default_storage |
10 | 10 | from django.template.loader import render_to_string
|
11
8000
td> | 11 | from django.test.client import Client
|
12 | 12 | from os.path import join as pjoin
|
13 |
| -from PIL import Image |
| 13 | +from sorl.thumbnail import default, get_thumbnail, delete |
14 | 14 | from sorl.thumbnail.conf import settings
|
15 | 15 | from sorl.thumbnail.engines.pil_engine import Engine as PILEngine
|
16 | 16 | from sorl.thumbnail.helpers import get_module_class, ThumbnailError
|
17 |
| -from sorl.thumbnail.images import ImageFile, DummyImageFile |
18 |
| -from sorl.thumbnail import default, get_thumbnail, delete |
| 17 | +from sorl.thumbnail.images import ImageFile |
19 | 18 | from sorl.thumbnail.log import ThumbnailLogHandler
|
20 | 19 | from sorl.thumbnail.parsers import parse_crop, parse_geometry
|
21 | 20 | from sorl.thumbnail.templatetags.thumbnail import margin
|
| 21 | +from subprocess import Popen, PIPE |
22 | 22 | from thumbnail_tests.models import Item
|
23 | 23 |
|
24 | 24 |
|
@@ -249,7 +249,23 @@ def test_options(self):
|
249 | 249 | }).strip()
|
250 | 250 | self.assertEqual(val0, val1)
|
251 | 251 |
|
252 |
| - |
| 252 | + def test_progressive(self): |
| 253 | + im = Item.objects.get(image='500x500.jpg').image |
| 254 | + th = self.backend.get_thumbnail(im, '100x100', progressive=True) |
| 255 | + path = pjoin(settings.MEDIA_ROOT, th.name) |
| 256 | + p = Popen(['identify', '-verbose', path], stdout=PIPE) |
| 257 | + p.wait() |
| 258 | + m = re.search('Interlace: JPEG', p.stdout.read()) |
| 259 | + self.assertEqual(bool(m), True) |
| 260 | + |
| 261 | + def test_nonprogressive(self): |
| 262 | + im = Item.objects.get(image='500x500.jpg').image |
| 263 | + th = self.backend.get_thumbnail(im, '100x100', progressive=False) |
| 264 | + path = pjoin(settings.MEDIA_ROOT, th.name) |
| 265 | + p = Popen(['identify', '-verbose', path], stdout=PIPE) |
| 266 | + p.wait() |
| 267 | + m = re.search('Interlace: None', p.stdout.read()) |
| 268 | + self.assertEqual(bool(m), True) |
253 | 269 |
|
254 | 270 | class TemplateTestCaseB(unittest.TestCase):
|
255 | 271 | def tearDown(self):
|
|
0 commit comments