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.

PermissionFunctionDecoratorsTestCase.tearDown()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 1
Ratio 33.33 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 1
loc 3
rs 10
1
# coding=utf-8
2
from django.test import TestCase
3
from django.core.exceptions import PermissionDenied
4
from ...utils.handlers import registry
5
from ...decorators.functionbase import permission_required
6
from .utils import (
7
    create_mock_handler,
8
    create_mock_request,
9
    create_mock_view_func,
10
    create_mock_queryset,
11
    create_mock_model,
12
)
13
14
15
class PermissionFunctionDecoratorsTestCase(TestCase):
16
    def setUp(self):
17
        self.handler = create_mock_handler()
18
        self.request = create_mock_request(self.handler)
19
        self.model = create_mock_model()
20
        self.model_instance = self.model()
21
        self.queryset = create_mock_queryset(self.model_instance)
22
        self.view_func = create_mock_view_func()
23
        self.decorated = permission_required(
24
                'permission.add_article')(self.view_func)
25
        self.decorated_exc = permission_required(
26
                'permission.add_article', raise_exception=True)(self.view_func)
27
28
        # store original registry
29
        self._original_registry = registry._registry
30
31
        # clear registry and register mock handler
32
        registry._registry = {}
33
        registry.register(
34
                self.model,
35
                self.handler,
36
            )
37
38
    def tearDown(self):
39
        # restore original registry
40 View Code Duplication
        registry._registry = self._original_registry
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
41
42
    def test_list_detail_object_id(self):
43
        # has_perm always return False
44
        self.view_func.called = False
45
        self.handler.has_perm.return_value = False
46
        self.decorated(self.request,
47
                       queryset=self.queryset,
48
                       object_id=1)
49
        self.request.user.has_perm.assert_called_with(
50
                'permission.add_article',
51
                obj=self.model_instance,
52
            )
53
        self.handler.has_perm.assert_called_with(
54
                'permission.add_article',
55
                obj=self.model_instance,
56
            )
57
        self.assertFalse(self.view_func.called)
58
59
        self.assertRaises(PermissionDenied, self.decorated_exc,
60
                          self.request, queryset=self.queryset,
61
                          object_id=1)
62
        self.assertFalse(self.view_func.called)
63
64
        # has_perm always return True
65
        self.handler.has_perm.return_value = True
66
        self.decorated(
67
                self.request,
68
                queryset=self.queryset,
69
                object_id=1)
70
        self.request.user.has_perm.assert_called_with(
71
                'permission.add_article',
72
                obj=self.model_instance,
73
            )
74
        self.handler.has_perm.assert_called_with(
75
                'permission.add_article',
76
                obj=self.model_instance,
77
            )
78 View Code Duplication
        self.assertTrue(self.view_func.called)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
79
80
    def test_list_detail_slug(self):
81
        self.view_func.called = False
82
        self.handler.has_perm.return_value = False
83
        # has_perm always return False
84
        self.decorated(
85
                self.request,
86
                queryset=self.queryset,
87
                slug='permission_test_article1',
88
                slug_field='title')
89
        self.request.user.has_perm.assert_called_with(
90
                'permission.add_article',
91
                obj=self.model_instance,
92
            )
93
        self.handler.has_perm.assert_called_with(
94
                'permission.add_article',
95
                obj=self.model_instance,
96
            )
97
        self.assertFalse(self.view_func.called)
98
        # has_perm always return True
99
        self.handler.has_perm.return_value = True
100
        self.decorated(
101
                self.request,
102
                queryset=self.queryset,
103
                slug='permission_test_article1',
104
                slug_field='title')
105
        self.request.user.has_perm.assert_called_with(
106
                'permission.add_article',
107
                obj=self.model_instance,
108
            )
109
        self.handler.has_perm.assert_called_with(
110
                'permission.add_article',
111
                obj=self.model_instance,
112
            )
113 View Code Duplication
        self.assertTrue(self.view_func.called)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
114
115
    def test_date_based_object_id(self):
116
        self.view_func.called = False
117
        self.handler.has_perm.return_value = False
118
        # has_perm always return False
119
        self.decorated(
120
                self.request,
121
                queryset=self.queryset,
122
                year='2000', month='1', day='1',
123
                date_field='created_at',
124
                month_format='%m',
125
                object_id=1)
126
        self.request.user.has_perm.assert_called_with(
127
                'permission.add_article',
128
                obj=self.model_instance,
129
            )
130
        self.handler.has_perm.assert_called_with(
131
                'permission.add_article',
132
                obj=self.model_instance,
133
            )
134
        self.assertFalse(self.view_func.called)
135
        # has_perm always return True
136
        self.handler.has_perm.return_value = True
137
        self.decorated(
138
                self.request,
139
                queryset=self.queryset,
140
                year='2000', month='1', day='1',
141
                date_field='created_at',
142
                month_format='%m',
143
                object_id=1)
144
        self.request.user.has_perm.assert_called_with(
145
                'permission.add_article',
146
                obj=self.model_instance,
147
            )
148
        self.handler.has_perm.assert_called_with(
149
                'permission.add_article',
150
                obj=self.model_instance,
151
            )
152 View Code Duplication
        self.assertTrue(self.view_func.called)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
153
154
    def test_date_based_slug(self):
155
        self.view_func.called = False
156
        self.handler.has_perm.return_value = False
157
        # has_perm always return False
158
        self.decorated(
159
                self.request,
160
                queryset=self.queryset,
161
                year='2000', month='1', day='1',
162
                date_field='created_at',
163
                month_format='%m',
164
                slug='permission_test_article1',
165
                slug_field='title')
166
        self.request.user.has_perm.assert_called_with(
167
                'permission.add_article',
168
                obj=self.model_instance,
169
            )
170
        self.handler.has_perm.assert_called_with(
171
                'permission.add_article',
172
                obj=self.model_instance,
173
            )
174
        self.assertFalse(self.view_func.called)
175
        # has_perm always return True
176
        self.handler.has_perm.return_value = True
177
        self.decorated(
178
                self.request,
179
                queryset=self.queryset,
180
                year='2000', month='1', day='1',
181
                date_field='created_at',
182
                month_format='%m',
183
                slug='permission_test_article1',
184
                slug_field='title')
185
        self.request.user.has_perm.assert_called_with(
186
                'permission.add_article',
187
                obj=self.model_instance,
188
            )
189
        self.handler.has_perm.assert_called_with(
190
                'permission.add_article',
191
                obj=self.model_instance,
192
            )
193
        self.assertTrue(self.view_func.called)
194
195