|
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
|
|
|
|