1
|
|
|
# coding: utf-8 |
2
|
|
|
import unittest |
3
|
|
|
from django.test import RequestFactory |
4
|
|
|
from django.contrib.auth.models import User |
5
|
|
|
|
6
|
|
|
from django_th.views import TriggerEditedTemplateView |
7
|
|
|
from django_th.views import TriggerDeletedTemplateView |
8
|
|
|
from django_th.views import TriggerListView |
9
|
|
|
from django_th.models import TriggerService |
10
|
|
|
|
11
|
|
|
|
12
|
|
View Code Duplication |
class TriggerEditedTemplateViewTestCase(unittest.TestCase): |
|
|
|
|
13
|
|
|
|
14
|
|
|
def test_get(self): |
15
|
|
|
template = "triggers/thanks_trigger.html" |
16
|
|
|
# Setup request and view. |
17
|
|
|
request = RequestFactory().get('/th/trigger/edit/thanks') |
18
|
|
|
view = TriggerEditedTemplateView.as_view(template_name=template) |
19
|
|
|
sentence = 'Your trigger has been successfully modified' |
20
|
|
|
# Run. |
21
|
|
|
response = view(request) |
22
|
|
|
# Check. |
23
|
|
|
self.assertEqual(response.status_code, 200) |
24
|
|
|
self.assertEqual(response.template_name[0], |
25
|
|
|
'triggers/thanks_trigger.html') |
26
|
|
|
self.assertEqual(response.context_data['sentence'], sentence) |
27
|
|
|
|
28
|
|
|
|
29
|
|
View Code Duplication |
class TriggerDeletedTemplateViewTestCase(unittest.TestCase): |
|
|
|
|
30
|
|
|
|
31
|
|
|
def test_get(self): |
32
|
|
|
template = "triggers/thanks_trigger.html" |
33
|
|
|
# Setup request and view. |
34
|
|
|
request = RequestFactory().get('/th/trigger/delete/thanks') |
35
|
|
|
view = TriggerDeletedTemplateView.as_view(template_name=template) |
36
|
|
|
sentence = 'Your trigger has been successfully deleted' |
37
|
|
|
# Run. |
38
|
|
|
response = view(request) |
39
|
|
|
# Check. |
40
|
|
|
self.assertEqual(response.status_code, 200) |
41
|
|
|
self.assertEqual(response.template_name[0], |
42
|
|
|
'triggers/thanks_trigger.html') |
43
|
|
|
self.assertEqual(response.context_data['sentence'], sentence) |
44
|
|
|
|
45
|
|
|
|
46
|
|
|
class TriggerListViewTestCase(unittest.TestCase): |
47
|
|
|
|
48
|
|
|
def setUp(self): |
49
|
|
|
# Every test needs access to the request factory. |
50
|
|
|
self.factory = RequestFactory() |
51
|
|
|
try: |
52
|
|
|
self.user = User.objects.get(username='john') |
53
|
|
|
except User.DoesNotExist: |
54
|
|
|
self.user = User.objects.create_user( |
55
|
|
|
username='john', email='[email protected]', password='doe') |
56
|
|
|
|
57
|
|
|
def test_context_data(self): |
58
|
|
|
""" |
59
|
|
|
TriggerListView.get_context_data() sets |
60
|
|
|
'triggers_enabled', 'triggers_disabled', 'services_activated' |
61
|
|
|
in context. |
62
|
|
|
""" |
63
|
|
|
# Setup name. |
64
|
|
|
triggers_enabled = triggers_disabled = services_activated = 0 |
65
|
|
|
queryset = TriggerService.objects.all() |
66
|
|
|
|
67
|
|
|
# Setup request and view. |
68
|
|
|
request = self.factory.get('/') |
69
|
|
|
request.user = self.user |
70
|
|
|
|
71
|
|
|
view = TriggerListView( |
72
|
|
|
template_name='home.html', object_list=queryset) |
73
|
|
|
view = setup_view(view, request) |
74
|
|
|
# Run. |
75
|
|
|
if request.user.is_authenticated(): |
76
|
|
|
triggers_enabled = 3 |
77
|
|
|
triggers_disabled = 1 |
78
|
|
|
services_activated = 5 |
79
|
|
|
|
80
|
|
|
context = view.get_context_data() |
81
|
|
|
context['nb_triggers'] = { |
82
|
|
|
'enabled': triggers_enabled, 'disabled': triggers_disabled} |
83
|
|
|
context['nb_services'] = services_activated |
84
|
|
|
|
85
|
|
|
# Check. |
86
|
|
|
self.assertEqual(context['nb_triggers']['enabled'], triggers_enabled) |
87
|
|
|
self.assertEqual(context['nb_triggers']['disabled'], triggers_disabled) |
88
|
|
|
self.assertEqual(context['nb_services'], services_activated) |
89
|
|
|
|
90
|
|
|
|
91
|
|
|
def setup_view(view, request, *args, **kwargs): |
92
|
|
|
"""Mimic as_view() returned callable, but returns view instance. |
93
|
|
|
|
94
|
|
|
args and kwargs are the same you would pass to ``reverse()`` |
95
|
|
|
|
96
|
|
|
""" |
97
|
|
|
view.request = request |
98
|
|
|
view.args = args |
99
|
|
|
view.kwargs = kwargs |
100
|
|
|
return view |
101
|
|
|
|