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

PermissionLogicsAuthorPermissionLogicTestCase   A

Complexity

Total Complexity 30

Size/Duplication

Total Lines 269
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 269
rs 10
wmc 30

30 Methods

Rating   Name   Duplication   Size   Complexity  
A test_constructor_with_specifing_delete_permission() 0 6 1
A test_constructor_with_specifing_change_permission() 0 6 1
A test_has_perm_delete_without_obj_with_anonymous() 0 4 1
A test_has_perm_add_without_obj_with_anonymous() 0 4 1
A test_has_perm_delete_with_obj_with_anonymous() 0 5 1
A test_has_perm_add_with_obj_with_anonymous() 0 5 1
A test_has_perm_delete_with_obj() 0 10 1
A test_has_perm_add_with_obj() 0 10 1
A test_constructor() 0 18 1
A test_has_perm_add_without_obj() 0 7 1
A test_has_perm_change_without_obj() 0 7 1
A setUp() 0 11 1
A test_constructor_with_specifing_any_permission() 0 6 1
A test_has_perm_change_with_obj() 0 10 1
A test_has_perm_delete_without_obj() 0 7 1
A test_has_perm_change_with_obj_with_anonymous() 0 5 1
A test_has_perm_change_without_obj_with_anonymous() 0 4 1
A test_has_perm_delete_without_obj_with_two_groups() 0 7 1
A test_has_perm_add_without_obj_without_any_permission() 0 7 1
A test_has_perm_add_with_obj_with_two_groups() 0 10 1
A test_has_perm_add_with_obj_without_any_permission() 0 10 1
A test_has_perm_delete_with_obj_without_any_permission() 0 10 1
A test_has_perm_delete_without_obj_without_any_permission() 0 7 1
A test_has_perm_delete_with_obj_with_two_groups() 0 10 1
A test_has_perm_add_without_obj_with_two_groups() 0 7 1
A test_has_perm_change_with_obj_with_two_groups() 0 10 1
A test_has_perm_change_without_obj_with_two_groups() 0 7 1
A test_has_perm_change_without_obj_without_any_permission() 0 7 1
A test_has_perm_change_with_obj_without_any_permission() 0 10 1
A test_constructor_with_specifing_add_permission() 0 6 1
1
# coding=utf-8
2
from django.test import TestCase
3
from permission.logics import GroupInPermissionLogic
4
from permission.utils.logics import add_permission_logic
5
from permission.tests.utils import create_user
6
from permission.tests.utils import create_anonymous
7
from permission.tests.utils import create_group
8
from permission.tests.utils import create_article
9
from permission.tests.compat import MagicMock
10
from permission.tests.compat import override_settings
11
12
13
@override_settings(
14
    PERMISSION_DEFAULT_GIPL_ANY_PERMISSION=True,
15
    PERMISSION_DEFAULT_GIPL_ADD_PERMISSION=True,
16
    PERMISSION_DEFAULT_GIPL_CHANGE_PERMISSION=True,
17
    PERMISSION_DEFAULT_GIPL_DELETE_PERMISSION=True,
18
)
19
class PermissionLogicsAuthorPermissionLogicTestCase(TestCase):
20
    def setUp(self):
21
        self.user1 = create_user('john')
22
        self.user2 = create_user('tony')
23
        self.user3 = create_user('peter')
24
        self.anonymous = create_anonymous()
25
        self.group1 = create_group('admin', self.user1)
26
        self.group2 = create_group('staff', self.user2)
27
        self.perm1 = 'permission.add_article'
28
        self.perm2 = 'permission.change_article'
29
        self.perm3 = 'permission.delete_article'
30
        self.article = create_article('test')
31
32
    def test_constructor(self):
33
        permission_logic = GroupInPermissionLogic('admin')
34
        add_permission_logic(self.article.__class__, permission_logic)
35
36
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
37
        self.assertEqual(permission_logic.group_names, ['admin'])
38
        self.assertEqual(permission_logic.any_permission, True)
39
        self.assertEqual(permission_logic.add_permission, True)
40
        self.assertEqual(permission_logic.change_permission, True)
41
        self.assertEqual(permission_logic.delete_permission, True)
42
43
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
44
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
45
        self.assertEqual(permission_logic.group_names, ['admin', 'staff'])
46
        self.assertEqual(permission_logic.any_permission, True)
47
        self.assertEqual(permission_logic.add_permission, True)
48
        self.assertEqual(permission_logic.change_permission, True)
49
        self.assertEqual(permission_logic.delete_permission, True)
50
51
    def test_constructor_with_specifing_any_permission(self):
52
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
53
        add_permission_logic(self.article.__class__, permission_logic)
54
55
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
56
        self.assertEqual(permission_logic.any_permission, False)
57
58
    def test_constructor_with_specifing_add_permission(self):
59
        permission_logic = GroupInPermissionLogic('admin', add_permission=False)
60
        add_permission_logic(self.article.__class__, permission_logic)
61
62
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
63
        self.assertEqual(permission_logic.add_permission, False)
64
65
    def test_constructor_with_specifing_change_permission(self):
66
        permission_logic = GroupInPermissionLogic('admin', change_permission=False)
67
        add_permission_logic(self.article.__class__, permission_logic)
68
69
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
70
        self.assertEqual(permission_logic.change_permission, False)
71
72
    def test_constructor_with_specifing_delete_permission(self):
73
        permission_logic = GroupInPermissionLogic('admin', delete_permission=False)
74
        add_permission_logic(self.article.__class__, permission_logic)
75
76
        self.assertTrue(isinstance(permission_logic, GroupInPermissionLogic))
77
        self.assertEqual(permission_logic.delete_permission, False)
78
79
    def test_has_perm_add_without_obj(self):
80
        permission_logic = GroupInPermissionLogic('admin')
81
        add_permission_logic(self.article.__class__, permission_logic)
82
83
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm1))
84
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm1))
85
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm1))
86
87
    def test_has_perm_change_without_obj(self):
88
        permission_logic = GroupInPermissionLogic('admin')
89
        add_permission_logic(self.article.__class__, permission_logic)
90
91
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm2))
92
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm2))
93
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm2))
94
95
    def test_has_perm_delete_without_obj(self):
96
        permission_logic = GroupInPermissionLogic('admin')
97
        add_permission_logic(self.article.__class__, permission_logic)
98
99
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
100
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm3))
101
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm3))
102
103
    def test_has_perm_add_with_obj(self):
104
        permission_logic = GroupInPermissionLogic('admin')
105
        add_permission_logic(self.article.__class__, permission_logic)
106
107
        self.assertTrue(
108
                permission_logic.has_perm(self.user1, self.perm1, self.article))
109
        self.assertFalse(
110
                permission_logic.has_perm(self.user2, self.perm1, self.article))
111
        self.assertFalse(
112
                permission_logic.has_perm(self.user3, self.perm1, self.article))
113
114
    def test_has_perm_change_with_obj(self):
115
        permission_logic = GroupInPermissionLogic('admin')
116
        add_permission_logic(self.article.__class__, permission_logic)
117
118
        self.assertTrue(
119
                permission_logic.has_perm(self.user1, self.perm2, self.article))
120
        self.assertFalse(
121
                permission_logic.has_perm(self.user2, self.perm2, self.article))
122
        self.assertFalse(
123
                permission_logic.has_perm(self.user3, self.perm2, self.article))
124
125
    def test_has_perm_delete_with_obj(self):
126
        permission_logic = GroupInPermissionLogic('admin')
127
        add_permission_logic(self.article.__class__, permission_logic)
128
129
        self.assertTrue(
130
                permission_logic.has_perm(self.user1, self.perm3, self.article))
131
        self.assertFalse(
132
                permission_logic.has_perm(self.user2, self.perm3, self.article))
133
        self.assertFalse(
134
                permission_logic.has_perm(self.user3, self.perm3, self.article))
135
136
    def test_has_perm_add_without_obj_with_anonymous(self):
137
        permission_logic = GroupInPermissionLogic('admin')
138
        add_permission_logic(self.article.__class__, permission_logic)
139
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm1))
140
141
    def test_has_perm_change_without_obj_with_anonymous(self):
142
        permission_logic = GroupInPermissionLogic('admin')
143
        add_permission_logic(self.article.__class__, permission_logic)
144
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm2))
145
146
    def test_has_perm_delete_without_obj_with_anonymous(self):
147
        permission_logic = GroupInPermissionLogic('admin')
148
        add_permission_logic(self.article.__class__, permission_logic)
149
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm3))
150
151
    def test_has_perm_add_with_obj_with_anonymous(self):
152
        permission_logic = GroupInPermissionLogic('admin')
153
        add_permission_logic(self.article.__class__, permission_logic)
154
        self.assertFalse(
155
            permission_logic.has_perm(self.anonymous, self.perm1, self.article))
156
157
    def test_has_perm_change_with_obj_with_anonymous(self):
158
        permission_logic = GroupInPermissionLogic('admin')
159
        add_permission_logic(self.article.__class__, permission_logic)
160
        self.assertFalse(
161
            permission_logic.has_perm(self.anonymous, self.perm2, self.article))
162
163
    def test_has_perm_delete_with_obj_with_anonymous(self):
164
        permission_logic = GroupInPermissionLogic('admin')
165
        add_permission_logic(self.article.__class__, permission_logic)
166
        self.assertFalse(
167
            permission_logic.has_perm(self.anonymous, self.perm3, self.article))
168
169
    def test_has_perm_add_without_obj_with_two_groups(self):
170
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
171
        add_permission_logic(self.article.__class__, permission_logic)
172
173
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm1))
174
        self.assertTrue(permission_logic.has_perm(self.user2, self.perm1))
175
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm1))
176
177
    def test_has_perm_change_without_obj_with_two_groups(self):
178
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
179
        add_permission_logic(self.article.__class__, permission_logic)
180
181
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm2))
182
        self.assertTrue(permission_logic.has_perm(self.user2, self.perm2))
183
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm2))
184
185
    def test_has_perm_delete_without_obj_with_two_groups(self):
186
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
187
        add_permission_logic(self.article.__class__, permission_logic)
188
189
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
190
        self.assertTrue(permission_logic.has_perm(self.user2, self.perm3))
191
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm3))
192
193
    def test_has_perm_add_with_obj_with_two_groups(self):
194
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
195
        add_permission_logic(self.article.__class__, permission_logic)
196
197
        self.assertTrue(
198
                permission_logic.has_perm(self.user1, self.perm1, self.article))
199
        self.assertTrue(
200
                permission_logic.has_perm(self.user2, self.perm1, self.article))
201
        self.assertFalse(
202
                permission_logic.has_perm(self.user3, self.perm1, self.article))
203
204
    def test_has_perm_change_with_obj_with_two_groups(self):
205
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
206
        add_permission_logic(self.article.__class__, permission_logic)
207
208
        self.assertTrue(
209
                permission_logic.has_perm(self.user1, self.perm2, self.article))
210
        self.assertTrue(
211
                permission_logic.has_perm(self.user2, self.perm2, self.article))
212
        self.assertFalse(
213
                permission_logic.has_perm(self.user3, self.perm2, self.article))
214
215
    def test_has_perm_delete_with_obj_with_two_groups(self):
216
        permission_logic = GroupInPermissionLogic(['admin', 'staff'])
217
        add_permission_logic(self.article.__class__, permission_logic)
218
219
        self.assertTrue(
220
                permission_logic.has_perm(self.user1, self.perm3, self.article))
221
        self.assertTrue(
222
                permission_logic.has_perm(self.user2, self.perm3, self.article))
223
        self.assertFalse(
224
                permission_logic.has_perm(self.user3, self.perm3, self.article))
225
226
    def test_has_perm_add_without_obj_without_any_permission(self):
227
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
228
        add_permission_logic(self.article.__class__, permission_logic)
229
230
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm1))
231
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm1))
232
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm1))
233
234
    def test_has_perm_change_without_obj_without_any_permission(self):
235
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
236
        add_permission_logic(self.article.__class__, permission_logic)
237
238
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm2))
239
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm2))
240
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm2))
241
242
    def test_has_perm_delete_without_obj_without_any_permission(self):
243
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
244
        add_permission_logic(self.article.__class__, permission_logic)
245
246
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
247
        self.assertFalse(permission_logic.has_perm(self.user2, self.perm3))
248
        self.assertFalse(permission_logic.has_perm(self.user3, self.perm3))
249
250
    def test_has_perm_add_with_obj_without_any_permission(self):
251
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
252
        add_permission_logic(self.article.__class__, permission_logic)
253
254
        self.assertTrue(
255
                permission_logic.has_perm(self.user1, self.perm1, self.article))
256
        self.assertFalse(
257
                permission_logic.has_perm(self.user2, self.perm1, self.article))
258
        self.assertFalse(
259
                permission_logic.has_perm(self.user3, self.perm1, self.article))
260
261
    def test_has_perm_change_with_obj_without_any_permission(self):
262
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
263
        add_permission_logic(self.article.__class__, permission_logic)
264
265
        self.assertTrue(
266
                permission_logic.has_perm(self.user1, self.perm2, self.article))
267
        self.assertFalse(
268
                permission_logic.has_perm(self.user2, self.perm2, self.article))
269
        self.assertFalse(
270
                permission_logic.has_perm(self.user3, self.perm2, self.article))
271
272
    def test_has_perm_delete_with_obj_without_any_permission(self):
273
        permission_logic = GroupInPermissionLogic('admin', any_permission=False)
274
        add_permission_logic(self.article.__class__, permission_logic)
275
276
        self.assertTrue(
277
                permission_logic.has_perm(self.user1, self.perm3, self.article))
278
        self.assertFalse(
279
                permission_logic.has_perm(self.user2, self.perm3, self.article))
280
        self.assertFalse(
281
                permission_logic.has_perm(self.user3, self.perm3, self.article))
282
283