GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 194382...d1a5fb )
by Lambda
01:38
created

PermissionClassDecoratorsTestCase.setUp()   B

Complexity

Conditions 1

Size

Total Lines 29

Duplication

Lines 29
Ratio 100 %

Importance

Changes 2
Bugs 2 Features 0
Metric Value
cc 1
c 2
b 2
f 0
dl 29
loc 29
rs 8.8571
1
# coding=utf-8
2
import django
3
from django.test import TestCase
4
from django.core.exceptions import PermissionDenied
5
from permission.utils.handlers import registry
6
from permission.decorators.methodbase import permission_required
7
from permission.tests.compat import skipIf
8
from permission.tests.compat import MagicMock
9
from permission.tests.test_decorators.utils import create_mock_handler
10
from permission.tests.test_decorators.utils import create_mock_request
11
from permission.tests.test_decorators.utils import create_mock_queryset
12
from permission.tests.test_decorators.utils import create_mock_model
13
from permission.tests.test_decorators.utils import create_mock_view_func
14
from permission.tests.test_decorators.utils import create_mock_view_class
15
16
17 View Code Duplication
@skipIf(
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
18
    django.VERSION < (1, 3),
19
    'Classbased generic view is not supported in this version')
20
class PermissionClassDecoratorsTestCase(TestCase):
21
    def setUp(self):
22
        self.handler = create_mock_handler()
23
        self.request = create_mock_request(self.handler)
24
        self.model = create_mock_model()
25
        self.model_instance = self.model()
26
        self.queryset = create_mock_queryset(self.model_instance)
27
28
        self.view_func = create_mock_view_func()
29
        self.view_class = create_mock_view_class(
30
            permission_required(
31
                'permission.add_article')(self.view_func))
32
        self.view_class_exc = create_mock_view_class(
33
            permission_required(
34
                'permission.add_article',
35
                raise_exception=True,
36
            )(self.view_func))
37
38
        # store original registry
39
        self._original_registry = registry._registry
40
41
        # clear registry and register mock handler
42
        registry._registry = {}
43
        registry.register(
44
                self.model,
45
                self.handler,
46
            )
47
48
        # clear call history
49
        self.handler.has_perm.return_value = False
50
51
    def tearDown(self):
52
        # restore original registry
53
        registry._registry = self._original_registry
54
55
    def test_with_object(self):
56
        # set object
57
        self.view_class.object = self.model_instance
58
        self.view_class_exc.object = self.model_instance
59
60
        # has_perm always return False
61
        self.view_class.as_view()(self.request, pk=1)
62
        self.request.user.has_perm.assert_called_with(
63
                'permission.add_article',
64
                obj=self.model_instance,
65
            )
66
        self.handler.has_perm.assert_called_with(
67
                'permission.add_article',
68
                obj=self.model_instance,
69
            )
70
        self.assertFalse(self.view_func.called)
71
72
        self.assertRaises(PermissionDenied,
73
                          self.view_class_exc.as_view(),
74
                          self.request, 
75
                          pk=1)
76
        self.assertFalse(self.view_func.called)
77
78
        # has_perm always return True
79
        self.handler.has_perm.return_value = True
80
        self.view_class.as_view()(self.request, pk=1)
81
        self.request.user.has_perm.assert_called_with(
82
                'permission.add_article',
83
                obj=self.model_instance,
84
            )
85
        self.handler.has_perm.assert_called_with(
86
                'permission.add_article',
87
                obj=self.model_instance,
88
            )
89
        self.assertTrue(self.view_func.called)
90
91
    def test_with_get_object(self):
92
        # set object
93
        self.view_class.get_object = MagicMock(
94
                return_value=self.model_instance)
95
        self.view_class_exc.get_object = MagicMock(
96
                return_value=self.model_instance)
97
98
        # has_perm always return False
99
        self.view_class.as_view()(self.request, pk=1)
100
        self.request.user.has_perm.assert_called_with(
101
                'permission.add_article',
102
                obj=self.model_instance,
103
            )
104
        self.handler.has_perm.assert_called_with(
105
                'permission.add_article',
106
                obj=self.model_instance,
107
            )
108
        self.assertFalse(self.view_func.called)
109
110
        self.assertRaises(PermissionDenied,
111
                          self.view_class_exc.as_view(),
112
                          self.request, 
113
                          pk=1)
114
        self.assertFalse(self.view_func.called)
115
116
        # has_perm always return True
117
        self.handler.has_perm.return_value = True
118
        self.view_class.as_view()(self.request, pk=1)
119
        self.request.user.has_perm.assert_called_with(
120
                'permission.add_article',
121
                obj=self.model_instance,
122
            )
123
        self.handler.has_perm.assert_called_with(
124
                'permission.add_article',
125
                obj=self.model_instance,
126
            )
127
        self.assertTrue(self.view_func.called)
128
129
    def test_with_queryset(self):
130
        # set object
131
        get_object = lambda x, y: y.get(*x.args, **x.kwargs)
132
        self.view_class.get_object = get_object
133
        self.view_class_exc.get_object = get_object
134
        self.view_class.queryset = self.queryset
135
        self.view_class_exc.queryset = self.queryset
136
137
        # has_perm always return False
138
        self.view_class.as_view()(self.request, pk=1)
139
        self.request.user.has_perm.assert_called_with(
140
                'permission.add_article',
141
                obj=self.model_instance,
142
            )
143
        self.handler.has_perm.assert_called_with(
144
                'permission.add_article',
145
                obj=self.model_instance,
146
            )
147
        self.assertFalse(self.view_func.called)
148
149
        self.assertRaises(PermissionDenied,
150
                          self.view_class_exc.as_view(),
151
                          self.request, 
152
                          pk=1)
153
        self.assertFalse(self.view_func.called)
154
155
        # has_perm always return True
156
        self.handler.has_perm.return_value = True
157
        self.view_class.as_view()(self.request, pk=1)
158
        self.request.user.has_perm.assert_called_with(
159
                'permission.add_article',
160
                obj=self.model_instance,
161
            )
162
        self.handler.has_perm.assert_called_with(
163
                'permission.add_article',
164
                obj=self.model_instance,
165
            )
166
        self.assertTrue(self.view_func.called)
167
168
    def test_with_get_queryset(self):
169
        # set object
170
        get_object = lambda x, y: y.get(*x.args, **x.kwargs)
171
        self.view_class.get_object = get_object
172
        self.view_class_exc.get_object = get_object
173
        self.view_class.get_queryset = MagicMock(
174
                return_value=self.queryset)
175
        self.view_class_exc.get_queryset = MagicMock(
176
                return_value=self.queryset)
177
178
        # has_perm always return False
179
        self.view_class.as_view()(self.request, pk=1)
180
        self.request.user.has_perm.assert_called_with(
181
                'permission.add_article',
182
                obj=self.model_instance,
183
            )
184
        self.handler.has_perm.assert_called_with(
185
                'permission.add_article',
186
                obj=self.model_instance,
187
            )
188
        self.assertFalse(self.view_func.called)
189
190
        self.assertRaises(PermissionDenied,
191
                          self.view_class_exc.as_view(),
192
                          self.request, 
193
                          pk=1)
194
        self.assertFalse(self.view_func.called)
195
196
        # has_perm always return True
197
        self.handler.has_perm.return_value = True
198
        self.view_class.as_view()(self.request, pk=1)
199
        self.request.user.has_perm.assert_called_with(
200
                'permission.add_article',
201
                obj=self.model_instance,
202
            )
203
        self.handler.has_perm.assert_called_with(
204
                'permission.add_article',
205
                obj=self.model_instance,
206
            )
207
        self.assertTrue(self.view_func.called)
208
209