Merge pull request #32 from nephila/feature/tests_image_url
Fix image url tests
This commit is contained in:
commit
cf0ef08896
4 changed files with 43 additions and 5 deletions
|
@ -143,7 +143,9 @@ class Post(ModelMeta, TranslatableModel):
|
||||||
return description.strip()
|
return description.strip()
|
||||||
|
|
||||||
def get_image_full_url(self):
|
def get_image_full_url(self):
|
||||||
return self.make_full_url(self.main_image.url)
|
if self.main_image:
|
||||||
|
return self.make_full_url(self.main_image.url)
|
||||||
|
return ''
|
||||||
|
|
||||||
def get_tags(self):
|
def get_tags(self):
|
||||||
taglist = [tag.name for tag in self.tags.all()]
|
taglist = [tag.name for tag in self.tags.all()]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import sys
|
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
import sys
|
||||||
|
from tempfile import mkdtemp
|
||||||
gettext = lambda s: s
|
gettext = lambda s: s
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -108,7 +109,8 @@ try:
|
||||||
'easy_thumbnails.processors.autocrop',
|
'easy_thumbnails.processors.autocrop',
|
||||||
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
|
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
|
||||||
'easy_thumbnails.processors.filters',
|
'easy_thumbnails.processors.filters',
|
||||||
)
|
),
|
||||||
|
FILE_UPLOAD_TEMP_DIR=mkdtemp()
|
||||||
)
|
)
|
||||||
|
|
||||||
from django_nose import NoseTestSuiteRunner
|
from django_nose import NoseTestSuiteRunner
|
||||||
|
|
|
@ -2,12 +2,18 @@
|
||||||
"""
|
"""
|
||||||
Tests for `djangocms_blog` module.
|
Tests for `djangocms_blog` module.
|
||||||
"""
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
from cms.utils.i18n import get_language_list
|
from cms.utils.i18n import get_language_list
|
||||||
from cmsplugin_filer_image.models import ThumbnailOption
|
from cmsplugin_filer_image.models import ThumbnailOption
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.core.files import File as DjangoFile
|
||||||
from django.http import SimpleCookie
|
from django.http import SimpleCookie
|
||||||
from django.test import TestCase, RequestFactory
|
from django.test import TestCase, RequestFactory
|
||||||
from django.utils.translation import activate
|
from django.utils.translation import activate
|
||||||
|
from filer.models import File, Image
|
||||||
|
from PIL import Image as PilImage, ImageChops, ImageDraw
|
||||||
from six import StringIO
|
from six import StringIO
|
||||||
|
|
||||||
from djangocms_blog.models import BlogCategory, Post
|
from djangocms_blog.models import BlogCategory, Post
|
||||||
|
@ -66,6 +72,15 @@ class BaseTest(TestCase):
|
||||||
self.thumb_2 = ThumbnailOption.objects.create(
|
self.thumb_2 = ThumbnailOption.objects.create(
|
||||||
name='main', width=200, height=200, crop=False, upscale=False
|
name='main', width=200, height=200, crop=False, upscale=False
|
||||||
)
|
)
|
||||||
|
img = create_image()
|
||||||
|
self.image_name = 'test_file.jpg'
|
||||||
|
self.filename = os.path.join(settings.FILE_UPLOAD_TEMP_DIR,
|
||||||
|
self.image_name)
|
||||||
|
img.save(self.filename, 'JPEG')
|
||||||
|
file_obj = DjangoFile(open(self.filename, 'rb'), name=self.image_name)
|
||||||
|
self.img = Image.objects.create(owner=self.user,
|
||||||
|
original_filename=self.image_name,
|
||||||
|
file=file_obj)
|
||||||
|
|
||||||
def _get_post(self, data, post=None, lang='en'):
|
def _get_post(self, data, post=None, lang='en'):
|
||||||
if not post:
|
if not post:
|
||||||
|
@ -85,6 +100,11 @@ class BaseTest(TestCase):
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
User.objects.all().delete()
|
User.objects.all().delete()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
os.remove(self.filename)
|
||||||
|
for f in File.objects.all():
|
||||||
|
f.delete()
|
||||||
|
|
||||||
def get_pages(self):
|
def get_pages(self):
|
||||||
from cms.api import create_page, create_title
|
from cms.api import create_page, create_title
|
||||||
page = create_page(u'page one', 'page.html', language='en')
|
page = create_page(u'page one', 'page.html', language='en')
|
||||||
|
@ -127,9 +147,20 @@ class BaseTest(TestCase):
|
||||||
post1 = self._get_post(self.data['en'][0])
|
post1 = self._get_post(self.data['en'][0])
|
||||||
post1 = self._get_post(self.data['it'][0], post1, 'it')
|
post1 = self._get_post(self.data['it'][0], post1, 'it')
|
||||||
post1.publish = True
|
post1.publish = True
|
||||||
|
post1.main_image = self.img
|
||||||
post1.save()
|
post1.save()
|
||||||
post1.set_current_language('en')
|
post1.set_current_language('en')
|
||||||
post2 = self._get_post(self.data['en'][1])
|
post2 = self._get_post(self.data['en'][1])
|
||||||
post2 = self._get_post(self.data['it'][1], post2, 'it')
|
post2 = self._get_post(self.data['it'][1], post2, 'it')
|
||||||
post2.set_current_language('en')
|
post2.set_current_language('en')
|
||||||
|
post2.main_image = self.img
|
||||||
return post1, post2
|
return post1, post2
|
||||||
|
|
||||||
|
|
||||||
|
def create_image(mode='RGB', size=(800, 600)):
|
||||||
|
image = PilImage.new(mode, size)
|
||||||
|
draw = ImageDraw.Draw(image)
|
||||||
|
x_bit, y_bit = size[0] // 10, size[1] // 10
|
||||||
|
draw.rectangle((x_bit, y_bit * 2, x_bit * 7, y_bit * 3), 'red')
|
||||||
|
draw.rectangle((x_bit * 2, y_bit, x_bit * 3, y_bit * 8), 'red')
|
||||||
|
return image
|
||||||
|
|
|
@ -19,6 +19,8 @@ class ModelsTest(BaseTest):
|
||||||
def test_model_attributes(self):
|
def test_model_attributes(self):
|
||||||
post = self._get_post(self.data['en'][0])
|
post = self._get_post(self.data['en'][0])
|
||||||
post = self._get_post(self.data['it'][0], post, 'it')
|
post = self._get_post(self.data['it'][0], post, 'it')
|
||||||
|
post.main_image = self.img
|
||||||
|
post.save()
|
||||||
post.set_current_language('en')
|
post.set_current_language('en')
|
||||||
meta_en = post.as_meta()
|
meta_en = post.as_meta()
|
||||||
self.assertEqual(meta_en.og_type, settings.BLOG_FB_TYPE)
|
self.assertEqual(meta_en.og_type, settings.BLOG_FB_TYPE)
|
||||||
|
@ -51,6 +53,7 @@ class ModelsTest(BaseTest):
|
||||||
self.assertNotEqual(url_it, url_en)
|
self.assertNotEqual(url_it, url_en)
|
||||||
|
|
||||||
self.assertEqual(post.get_full_url(), 'http://example.com%s' % url_it)
|
self.assertEqual(post.get_full_url(), 'http://example.com%s' % url_it)
|
||||||
|
self.assertEqual(post.get_image_full_url(), 'http://example.com%s' % post.main_image.url)
|
||||||
|
|
||||||
self.assertEqual(post.thumbnail_options(), settings.BLOG_IMAGE_THUMBNAIL_SIZE)
|
self.assertEqual(post.thumbnail_options(), settings.BLOG_IMAGE_THUMBNAIL_SIZE)
|
||||||
self.assertEqual(post.full_image_options(), settings.BLOG_IMAGE_FULL_SIZE)
|
self.assertEqual(post.full_image_options(), settings.BLOG_IMAGE_FULL_SIZE)
|
||||||
|
|
Loading…
Reference in a new issue