Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.test import TestCase, Client
from django.core.paginator import EmptyPage
from django.utils.translation import activate
from .models import News, NewsComplete, NewsExtended
class NewsboxAbstractModelsTests(TestCase):
fixtures = ['tests_data.json',]
def test_01_manager_published(self):
"""
Test if we only get really published news via the manager
"""
newsClasses = [
News, NewsComplete, NewsExtended
]
for cls in newsClasses:
returned_ids = list(cls.objects.published().values_list(
'id', flat=True).order_by('id'))
self.assertEqual(
(cls.__name__,returned_ids),
(cls.__name__,[1, 4, 6, 7,]))
def test_02_extra_translated_fields(self):
news = NewsExtended.objects.get(pk=1)
self.assertEqual(
list(news.get_available_languages()),
['en', 'fr'])
news_fr = NewsExtended.objects.language('fr').get(pk=1)
news_en = NewsExtended.objects.language('en').get(pk=1)
self.assertEqual(
news_fr.content_field,
'Contenu additionnel de l\'actualité 1')
self.assertEqual(
news_en.content_field,
'Extra content of the news 1')
self.assertEqual(news_en.general_field, news_fr.general_field)
def test_03_view_archive_200(self):
"""
Test if generic archive view return right informations.
"""
c = Client()
r = c.get('/en/news/')
self.assertEqual(r.status_code, 200)
self.assertIn('newsset', r.context)
self.assertEqual(r.context['newsset'][0].pk, 7)
self.assertEqual(r.context['newsset'].number, 1)
self.assertEqual(r.context['newsset'].paginator.num_pages, 4)
self.assertFalse(r.context['newsset'].has_previous())
self.assertTrue(r.context['newsset'].has_next())
self.assertRaises(EmptyPage, r.context['newsset'].previous_page_number)
self.assertEqual(r.context['newsset'].next_page_number(), 2)
def test_04_view_detail_200(self):
"""
Test if generic day views return right informations.
"""
c = Client()
r = c.get('/en/newsbox/myapp_hvad/news/2005/07/15/news-6/')
self.assertEqual(r.status_code, 200)
self.assertEqual(r.context['news'].pk, 6)
def test_05_view_detail_404(self):
"""
Test if generic day views return a 404 with an URL with a date without
any news.
"""
c = Client()
r = c.get('/en/newsbox/myapp_hvad/news/1985/07/02/my-birthday/')
self.assertEqual(r.status_code, 404)
def test_06_view_detail_404_not_published(self):
"""
Test if generic day views return a 404 with an URL with a not published
news
"""
c = Client()
r = c.get('/en/newsbox/myapp_hvad/news/2014/02/22/news-2/')
self.assertEqual(r.status_code, 404)
def test_07_view_detail_translated(self):
c = Client()
r_en = c.get('/en/newsbox/myapp_hvad/news/2005/07/15/news-6/')
r_fr = c.get('/fr/newsbox/myapp_hvad/news/2005/07/15/actualite-6/')
self.assertEqual(r_fr.context['news'].pk, r_en.context['news'].pk)
self.assertEqual(r_fr.context['news'].newsbox_title, 'Actualité 6')
self.assertEqual(r_en.context['news'].newsbox_title, 'News 6')
def test_08_get_absolute_url(self):
news6 = News.objects.get(pk=6)
expected_results = {
'en':'/en/newsbox/myapp_hvad/news/2005/07/15/news-6/',
'fr':'/fr/newsbox/myapp_hvad/news/2005/07/15/actualite-6/',}
for lang in expected_results:
activate(lang)
self.assertEqual(news6.get_absolute_url(), expected_results[lang])