115 lines
4.3 KiB
Python
115 lines
4.3 KiB
Python
|
from utils.tests import BaseTestCase
|
||
|
from django.conf import settings
|
||
|
from django.core.urlresolvers import reverse
|
||
|
from django.core.urlresolvers import resolve
|
||
|
from django.utils.translation import get_language
|
||
|
from django.utils.translation import activate
|
||
|
from djangocms_blog.settings import get_setting
|
||
|
from djangocms_blog.models import Post
|
||
|
|
||
|
from model_mommy import mommy
|
||
|
|
||
|
from .views import PostListViewUngleich, PostDetailViewUngleich
|
||
|
|
||
|
|
||
|
class PostListViewUngleichTest(BaseTestCase):
|
||
|
|
||
|
DE_LANGUAGE_CODE = 'de'
|
||
|
EN_LANGUAGE_CODE = 'en-us'
|
||
|
|
||
|
def setUp(self):
|
||
|
super(PostListViewUngleichTest, self).setUp()
|
||
|
self.url = reverse('ungleich:post-list')
|
||
|
self.view = PostListViewUngleich
|
||
|
self.expected_template = 'djangocms_blog/post_list_ungleich.html'
|
||
|
en_post_titles = ['post-title-1', 'post-title-2']
|
||
|
self.en_posts = [mommy.make(Post, title=x, publish=True) for x in en_post_titles]
|
||
|
# activate DE language in order to create DE POSTS
|
||
|
activate(self.DE_LANGUAGE_CODE)
|
||
|
de_post_titles = ['post-title-3', 'post-title-4']
|
||
|
self.de_posts = [mommy.make(Post, title=x, publish=True) for x in de_post_titles]
|
||
|
|
||
|
self.expected_context = {
|
||
|
'TRUNCWORDS_COUNT': get_setting('POSTS_LIST_TRUNCWORDS_COUNT'),
|
||
|
'languages': settings.LANGUAGES,
|
||
|
'current_language': get_language()
|
||
|
|
||
|
}
|
||
|
|
||
|
def test_url_resolve_to_view_correctly(self):
|
||
|
found = resolve(self.url)
|
||
|
self.assertEqual(found.func.__name__, self.view.__name__)
|
||
|
|
||
|
def test_queryset(self):
|
||
|
# testing EN-US Post queryset
|
||
|
activate(self.EN_LANGUAGE_CODE)
|
||
|
view = self.setup_view(self.view())
|
||
|
queryset = view.get_queryset()
|
||
|
self.assertEqual(self.en_posts, list(queryset.order_by('id')))
|
||
|
|
||
|
# testing DE Post queryset
|
||
|
activate(self.DE_LANGUAGE_CODE)
|
||
|
view = self.setup_view(self.view())
|
||
|
queryset = view.get_queryset()
|
||
|
self.assertEqual(self.de_posts, list(queryset.order_by('id')))
|
||
|
|
||
|
def test_get_context(self):
|
||
|
view = self.setup_view(self.view())
|
||
|
queryset = view.get_queryset()
|
||
|
view.object_list = queryset
|
||
|
context = view.get_context_data()
|
||
|
self.assertEqual(self.expected_context.get('current_language'),
|
||
|
context['current_language'])
|
||
|
|
||
|
|
||
|
class DetailsViewTest(BaseTestCase):
|
||
|
|
||
|
DE_LANGUAGE_CODE = 'de'
|
||
|
EN_LANGUAGE_CODE = 'en-us'
|
||
|
|
||
|
def setUp(self):
|
||
|
super(DetailsViewTest, self).setUp()
|
||
|
self.url = reverse('ungleich:post-list')
|
||
|
self.view = PostDetailViewUngleich
|
||
|
self.expected_template = 'djangocms_blog/post_detail.html'
|
||
|
self.en_post = mommy.make(Post, publish=True, title='post-title-en')
|
||
|
# activate DE language in order to create DE POSTS
|
||
|
activate(self.DE_LANGUAGE_CODE)
|
||
|
self.de_post = mommy.make(Post, publish=True, title='post-title-de')
|
||
|
|
||
|
self.en_post_kwargs = {
|
||
|
'slug': self.en_post.slug,
|
||
|
'year': self.en_post.date_created.year,
|
||
|
'month': self.en_post.date_created.month,
|
||
|
'day': self.en_post.date_created.day
|
||
|
}
|
||
|
self.en_post_url = reverse('ungleich:post-detail', kwargs=self.en_post_kwargs)
|
||
|
|
||
|
self.de_post_kwargs = {
|
||
|
'slug': self.de_post.slug,
|
||
|
'year': self.de_post.date_created.year,
|
||
|
'month': self.de_post.date_created.month,
|
||
|
'day': self.de_post.date_created.day
|
||
|
}
|
||
|
self.de_post_url = reverse('ungleich:post-detail', kwargs=self.de_post_kwargs)
|
||
|
|
||
|
def test_url_resolve_to_view_correctly(self):
|
||
|
found = resolve(self.en_post_url)
|
||
|
self.assertEqual(found.func.__name__, self.view.__name__)
|
||
|
|
||
|
found = resolve(self.de_post_url)
|
||
|
self.assertEqual(found.func.__name__, self.view.__name__)
|
||
|
|
||
|
def test_get_object(self):
|
||
|
# Testing get_object view method on an EN Post instance
|
||
|
activate(self.EN_LANGUAGE_CODE)
|
||
|
view = self.setup_view(self.view(), **self.en_post_kwargs)
|
||
|
obj = view.get_object()
|
||
|
self.assertEqual(self.en_post, obj)
|
||
|
|
||
|
# Testing get_object view method on an DE Post instance
|
||
|
activate(self.DE_LANGUAGE_CODE)
|
||
|
view = self.setup_view(self.view(), **self.de_post_kwargs)
|
||
|
obj = view.get_object()
|
||
|
self.assertEqual(self.de_post, obj)
|