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

src.permission.tests.test_logics.PermissionLogicsAuthorPermissionLogicTestCase   A

Complexity

Total Complexity 33

Size/Duplication

Total Lines 210
Duplicated Lines 0 %
Metric Value
dl 0
loc 210
rs 9.4
wmc 33

16 Methods

Rating   Name   Duplication   Size   Complexity  
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_delete_with_obj_author() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_add_with_obj_author_non_any() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_change_with_obj_author_non_any_no_delete() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_constructor_with_specifing_field_name() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_change_with_obj_author_non_any() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_delete_with_obj_non_any_no_change() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_add_with_obj_author_non_any_no_delete() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_delete_with_obj_author_diff_field_name() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_delete_with_obj_non_any() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_add_with_obj_author_non_any_no_change() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_change_with_obj_author_non_any_no_change() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_add_with_obj_author() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_add_with_obj_author_diff_field_name() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_delete_with_obj_non_any_no_delete() 6 6 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_change_with_obj_author() 5 5 1
A PermissionLogicsAuthorPermissionLogicTestCase.test_has_perm_change_with_obj_author_diff_field_name() 5 5 1
1
# coding=utf-8
2
from django.test import TestCase
3
from permission import add_permission_logic
4
from permission.logics import AuthorPermissionLogic
5
from permission.tests.utils import create_user
6
from permission.tests.utils import create_anonymous
7
from permission.tests.utils import create_article
8
from permission.tests.compat import MagicMock
9
from permission.tests.compat import override_settings
10
11
12 View Code Duplication
@override_settings(
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
13
    PERMISSION_DEFAULT_APL_FIELD_NAME='author',
14
    PERMISSION_DEFAULT_APL_ANY_PERMISSION=True,
15
    PERMISSION_DEFAULT_APL_CHANGE_PERMISSION=True,
16
    PERMISSION_DEFAULT_APL_DELETE_PERMISSION=True,
17
)
18
class PermissionLogicsAuthorPermissionLogicTestCase(TestCase):
19
    def setUp(self):
20
        self.user1 = create_user('john')
21
        self.user2 = create_user('tony')
22
        self.anonymous = create_anonymous()
23
        self.perm1 = 'permission.add_article'
24
        self.perm2 = 'permission.change_article'
25
        self.perm3 = 'permission.delete_article'
26
        self.article = create_article('test', user=self.user2)
27
28
    def test_constructor(self):
29
        permission_logic = AuthorPermissionLogic()
30
        add_permission_logic(self.article.__class__, permission_logic)
31
        self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
32
        self.assertEqual(permission_logic.field_name, 'author')
33
        self.assertEqual(permission_logic.any_permission, True)
34
        self.assertEqual(permission_logic.change_permission, True)
35
        self.assertEqual(permission_logic.delete_permission, True)
36
37
    def test_constructor_with_specifing_field_name(self):
38
        permission_logic = AuthorPermissionLogic(field_name='specified')
39
        add_permission_logic(self.article.__class__, permission_logic)
40
        self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
41
        self.assertEqual(permission_logic.field_name, 'specified')
42
43
    def test_constructor_with_specifing_any_permission(self):
44
        permission_logic = AuthorPermissionLogic(any_permission=False)
45
        add_permission_logic(self.article.__class__, permission_logic)
46
        self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
47
        self.assertEqual(permission_logic.any_permission, False)
48
49
    def test_constructor_with_specifing_change_permission(self):
50
        permission_logic = AuthorPermissionLogic(change_permission=False)
51
        add_permission_logic(self.article.__class__, permission_logic)
52
        self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
53
        self.assertEqual(permission_logic.change_permission, False)
54
55
    def test_constructor_with_specifing_delete_permission(self):
56
        permission_logic = AuthorPermissionLogic(delete_permission=False)
57
        add_permission_logic(self.article.__class__, permission_logic)
58
        self.assertTrue(isinstance(permission_logic, AuthorPermissionLogic))
59
        self.assertEqual(permission_logic.delete_permission, False)
60
61
    def test_has_perm_add_without_obj(self):
62
        permission_logic = AuthorPermissionLogic()
63
        add_permission_logic(self.article.__class__, permission_logic)
64
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm1))
65
66
    def test_has_perm_change_without_obj(self):
67
        permission_logic = AuthorPermissionLogic()
68
        add_permission_logic(self.article.__class__, permission_logic)
69
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm2))
70
71
    def test_has_perm_delete_without_obj(self):
72
        permission_logic = AuthorPermissionLogic()
73
        add_permission_logic(self.article.__class__, permission_logic)
74
        self.assertTrue(permission_logic.has_perm(self.user1, self.perm3))
75
76
    def test_has_perm_add_without_obj_with_anonymous(self):
77
        permission_logic = AuthorPermissionLogic()
78
        add_permission_logic(self.article.__class__, permission_logic)
79
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm1))
80
81
    def test_has_perm_change_without_obj_with_anonymous(self):
82
        permission_logic = AuthorPermissionLogic()
83
        add_permission_logic(self.article.__class__, permission_logic)
84
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm2))
85
86
    def test_has_perm_delete_without_obj_with_anonymous(self):
87
        permission_logic = AuthorPermissionLogic()
88
        add_permission_logic(self.article.__class__, permission_logic)
89
        self.assertFalse(permission_logic.has_perm(self.anonymous, self.perm3))
90
91
    def test_has_perm_add_with_obj(self):
92
        permission_logic = AuthorPermissionLogic()
93
        add_permission_logic(self.article.__class__, permission_logic)
94
        self.assertFalse(
95
                permission_logic.has_perm(self.user1, self.perm1, self.article))
96
97
    def test_has_perm_change_with_obj(self):
98
        permission_logic = AuthorPermissionLogic()
99
        add_permission_logic(self.article.__class__, permission_logic)
100
        self.assertFalse(
101
                permission_logic.has_perm(self.user1, self.perm2, self.article))
102
103
    def test_has_perm_delete_with_obj(self):
104
        permission_logic = AuthorPermissionLogic()
105
        add_permission_logic(self.article.__class__, permission_logic)
106
        self.assertFalse(
107
                permission_logic.has_perm(self.user1, self.perm3, self.article))
108
109
    def test_has_perm_add_with_obj_with_anonymous(self):
110
        permission_logic = AuthorPermissionLogic()
111
        add_permission_logic(self.article.__class__, permission_logic)
112
        self.assertFalse(
113
            permission_logic.has_perm(self.anonymous, self.perm1, self.article))
114
115
    def test_has_perm_change_with_obj_with_anonymous(self):
116
        permission_logic = AuthorPermissionLogic()
117
        add_permission_logic(self.article.__class__, permission_logic)
118
        self.assertFalse(
119
            permission_logic.has_perm(self.anonymous, self.perm2, self.article))
120
121
    def test_has_perm_delete_with_obj_with_anonymous(self):
122
        permission_logic = AuthorPermissionLogic()
123
        add_permission_logic(self.article.__class__, permission_logic)
124
        self.assertFalse(
125
            permission_logic.has_perm(self.anonymous, self.perm3, self.article))
126
127
    def test_has_perm_add_with_obj_author(self):
128
        permission_logic = AuthorPermissionLogic()
129
        add_permission_logic(self.article.__class__, permission_logic)
130
        self.assertTrue(
131
                permission_logic.has_perm(self.user2, self.perm1, self.article))
132
133
    def test_has_perm_change_with_obj_author(self):
134
        permission_logic = AuthorPermissionLogic()
135
        add_permission_logic(self.article.__class__, permission_logic)
136
        self.assertTrue(
137
                permission_logic.has_perm(self.user2, self.perm2, self.article))
138
139
    def test_has_perm_delete_with_obj_author(self):
140
        permission_logic = AuthorPermissionLogic()
141
        add_permission_logic(self.article.__class__, permission_logic)
142
        self.assertTrue(
143
                permission_logic.has_perm(self.user2, self.perm3, self.article))
144
145
    def test_has_perm_add_with_obj_author_diff_field_name(self):
146
        permission_logic = AuthorPermissionLogic(field_name='editor')
147
        add_permission_logic(self.article.__class__, permission_logic)
148
        self.assertFalse(
149
                permission_logic.has_perm(self.user2, self.perm1, self.article))
150
151
    def test_has_perm_change_with_obj_author_diff_field_name(self):
152
        permission_logic = AuthorPermissionLogic(field_name='editor')
153
        add_permission_logic(self.article.__class__, permission_logic)
154
        self.assertFalse(
155
                permission_logic.has_perm(self.user2, self.perm2, self.article))
156
157
    def test_has_perm_delete_with_obj_author_diff_field_name(self):
158
        permission_logic = AuthorPermissionLogic(field_name='editor')
159
        add_permission_logic(self.article.__class__, permission_logic)
160
        self.assertFalse(
161
                permission_logic.has_perm(self.user2, self.perm3, self.article))
162
163
    def test_has_perm_add_with_obj_author_non_any(self):
164
        permission_logic = AuthorPermissionLogic(any_permission=False)
165
        add_permission_logic(self.article.__class__, permission_logic)
166
        self.assertFalse(
167
                permission_logic.has_perm(self.user2, self.perm1, self.article))
168
169
    def test_has_perm_change_with_obj_author_non_any(self):
170
        permission_logic = AuthorPermissionLogic(any_permission=False)
171
        add_permission_logic(self.article.__class__, permission_logic)
172
        self.assertTrue(
173
                permission_logic.has_perm(self.user2, self.perm2, self.article))
174
175
    def test_has_perm_delete_with_obj_non_any(self):
176
        permission_logic = AuthorPermissionLogic(any_permission=False)
177
        add_permission_logic(self.article.__class__, permission_logic)
178
        self.assertTrue(
179
                permission_logic.has_perm(self.user2, self.perm3, self.article))
180
181
    def test_has_perm_add_with_obj_author_non_any_no_change(self):
182
        permission_logic = AuthorPermissionLogic(any_permission=False,
183
                                                 change_permission=False)
184
        add_permission_logic(self.article.__class__, permission_logic)
185
        self.assertFalse(
186
                permission_logic.has_perm(self.user2, self.perm1, self.article))
187
188
    def test_has_perm_change_with_obj_author_non_any_no_change(self):
189
        permission_logic = AuthorPermissionLogic(any_permission=False,
190
                                                 change_permission=False)
191
        add_permission_logic(self.article.__class__, permission_logic)
192
        self.assertFalse(
193
                permission_logic.has_perm(self.user2, self.perm2, self.article))
194
195
    def test_has_perm_delete_with_obj_non_any_no_change(self):
196
        permission_logic = AuthorPermissionLogic(any_permission=False,
197
                                                 change_permission=False)
198
        add_permission_logic(self.article.__class__, permission_logic)
199
        self.assertTrue(
200
                permission_logic.has_perm(self.user2, self.perm3, self.article))
201
202
    def test_has_perm_add_with_obj_author_non_any_no_delete(self):
203
        permission_logic = AuthorPermissionLogic(any_permission=False,
204
                                                 delete_permission=False)
205
        add_permission_logic(self.article.__class__, permission_logic)
206
        self.assertFalse(
207
                permission_logic.has_perm(self.user2, self.perm1, self.article))
208
209
    def test_has_perm_change_with_obj_author_non_any_no_delete(self):
210
        permission_logic = AuthorPermissionLogic(any_permission=False,
211
                                                 delete_permission=False)
212
        add_permission_logic(self.article.__class__, permission_logic)
213
        self.assertTrue(
214
                permission_logic.has_perm(self.user2, self.perm2, self.article))
215
216
    def test_has_perm_delete_with_obj_non_any_no_delete(self):
217
        permission_logic = AuthorPermissionLogic(any_permission=False,
218
                                                 delete_permission=False)
219
        add_permission_logic(self.article.__class__, permission_logic)
220
        self.assertFalse(
221
                permission_logic.has_perm(self.user2, self.perm3, self.article))
222