Completed
Branch master (28ef54)
by Fox
01:25
created

TriggerListViewTestCase.test_context_data()   B

Complexity

Conditions 2

Size

Total Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
dl 0
loc 32
rs 8.8571
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):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
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):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
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