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

test_has_perm_with_nil_permission()   A

Complexity

Conditions 1

Size

Total Lines 18

Duplication

Lines 18
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 18
loc 18
rs 9.4285
1
# coding=utf-8
2
from django.test import TestCase
3
from django.core.exceptions import ObjectDoesNotExist
4
from permission.backends import PermissionBackend
5
from permission.utils.handlers import registry
6
from permission.tests.utils import create_user
7
from permission.tests.utils import create_article
8
from permission.tests.models import Article
9
from permission.tests.compat import MagicMock
10
from permission.tests.compat import override_settings
11
12
13
@override_settings(
14
    AUTHENTICATION_BACKENDS=(
15
        'django.contrib.auth.backends.ModelBackend',
16
        'permission.backends.PermissionBackend',
17
    ),
18
)
19
class PermissionPermissionBackendTestCase(TestCase):
20
    def setUp(self):
21
        self.user = create_user('john')
22
        self.perm1 = 'permission.add_article'
23
        self.perm2 = 'permission.change_article'
24
        self.perm3 = 'permission.delete_article'
25
        self.article = create_article('test')
26
        self.original_get_handlers = registry.get_handlers
27
28
    def tearDown(self):
29
        registry.get_handlers = self.original_get_handlers
30
31
    def test_constructor(self):
32
        backend = PermissionBackend()
33
34
    def test_authenticate(self):
35
        backend = PermissionBackend()
36
        self.assertEqual(backend.authenticate(None, None), None)
37
38 View Code Duplication
    def test_has_perm_without_obj(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
39
        perms = [
40
            'permission.add_article',
41
            'permission.change_article',
42
            'permission.delete_article',
43
        ]
44
        registry.get_handlers = MagicMock(return_value=[
45
            MagicMock(get_supported_permissions=MagicMock(return_value=perms),
46
                      has_perm=MagicMock(return_value=False)),
47
            MagicMock(get_supported_permissions=MagicMock(return_value=perms),
48
                      has_perm=MagicMock(return_value=True)),
49
        ])
50
51
        backend = PermissionBackend()
52
        self.assertFalse(registry.get_handlers.called)
53
        self.assertFalse(registry.get_handlers()[0].get_supported_permissions.called)
54
        self.assertFalse(registry.get_handlers()[1].get_supported_permissions.called)
55
        self.assertFalse(registry.get_handlers()[0].has_perm.called)
56
        self.assertFalse(registry.get_handlers()[1].has_perm.called)
57
58
        self.assertTrue(backend.has_perm(self.user, self.perm1))
59
60
        self.assertTrue(registry.get_handlers.called)
61
        self.assertTrue(registry.get_handlers()[0].get_supported_permissions.called)
62
        self.assertTrue(registry.get_handlers()[1].get_supported_permissions.called)
63
        self.assertTrue(registry.get_handlers()[0].has_perm.called)
64
        self.assertTrue(registry.get_handlers()[1].has_perm.called)
65
66 View Code Duplication
    def test_has_perm_with_obj(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
67
        perms = [
68
            'permission.add_article',
69
            'permission.change_article',
70
            'permission.delete_article',
71
        ]
72
        registry.get_handlers = MagicMock(return_value=[
73
            MagicMock(get_supported_permissions=MagicMock(return_value=perms),
74
                      has_perm=MagicMock(return_value=False)),
75
            MagicMock(get_supported_permissions=MagicMock(return_value=perms),
76
                      has_perm=MagicMock(return_value=True)),
77
        ])
78
79
        backend = PermissionBackend()
80
        self.assertFalse(registry.get_handlers.called)
81
        self.assertFalse(registry.get_handlers()[0].get_supported_permissions.called)
82
        self.assertFalse(registry.get_handlers()[1].get_supported_permissions.called)
83
        self.assertFalse(registry.get_handlers()[0].has_perm.called)
84
        self.assertFalse(registry.get_handlers()[1].has_perm.called)
85
86
        self.assertTrue(backend.has_perm(self.user, self.perm1, self.article))
87
88
        self.assertTrue(registry.get_handlers.called)
89
        self.assertTrue(registry.get_handlers()[0].get_supported_permissions.called)
90
        self.assertTrue(registry.get_handlers()[1].get_supported_permissions.called)
91
        self.assertTrue(registry.get_handlers()[0].has_perm.called)
92
        self.assertTrue(registry.get_handlers()[1].has_perm.called)
93
94 View Code Duplication
    @override_settings(
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
95
        PERMISSION_CHECK_PERMISSION_PRESENCE=False,
96
    )
97
    def test_has_perm_with_nil_permission(self):
98
        perms = [
99
            'permission.add_article',
100
            'permission.change_article',
101
            'permission.delete_article',
102
        ]
103
        registry.get_handlers = MagicMock(return_value=[
104
            MagicMock(get_permissions=MagicMock(return_value=perms),
105
                      has_perm=MagicMock(return_value=False)),
106
            MagicMock(get_permissions=MagicMock(return_value=perms),
107
                      has_perm=MagicMock(return_value=True)),
108
        ])
109
110
        backend = PermissionBackend()
111
        self.assertFalse(backend.has_perm(None, 'permissions.nil_permission'))
112
113 View Code Duplication
    @override_settings(
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
114
        PERMISSION_CHECK_PERMISSION_PRESENCE=True,
115
    )
116
    def test_has_perm_with_nil_permission_raise(self):
117
        perms = [
118
            'permission.add_article',
119
            'permission.change_article',
120
            'permission.delete_article',
121
        ]
122
        registry.get_handlers = MagicMock(return_value=[
123
            MagicMock(get_permissions=MagicMock(return_value=perms),
124
                      has_perm=MagicMock(return_value=False)),
125
            MagicMock(get_permissions=MagicMock(return_value=perms),
126
                      has_perm=MagicMock(return_value=True)),
127
        ])
128
129
        backend = PermissionBackend()
130
        self.assertRaises(ObjectDoesNotExist,
131
                backend.has_perm,
132
                None, 'permissions.nil_permission')
133
134
    @override_settings(
135
        PERMISSION_CHECK_PERMISSION_PRESENCE=False,
136
        AUTHENTICATION_BACKENDS = (
137
            'django.contrib.auth.backends.ModelBackend',
138
            'permission.backends.PermissionBackend',
139
        ),
140
    )
141
    def test_has_perm_with_nil_permission_with_user(self):
142
        self.assertFalse(self.user.has_perm('permissions.nil_permission'))
143
144
    @override_settings(
145
        PERMISSION_CHECK_PERMISSION_PRESENCE=True,
146
        AUTHENTICATION_BACKENDS = (
147
            'django.contrib.auth.backends.ModelBackend',
148
            'permission.backends.PermissionBackend',
149
        ),
150
    )
151
    def test_has_perm_with_nil_permission_raise_with_user(self):
152
        self.assertRaises(ObjectDoesNotExist,
153
                self.user.has_perm,
154
                'permissions.nil_permission')
155
156 View Code Duplication
    def test_has_module_perms(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
157
        perms = [
158
            'permission.add_article',
159
            'permission.change_article',
160
            'permission.delete_article',
161
        ]
162
        app_labels = ['permission']
163
        registry.get_handlers = MagicMock(return_value=[
164
            MagicMock(get_supported_app_labels=MagicMock(return_value=app_labels),
165
                      has_module_perms=MagicMock(return_value=False)),
166
            MagicMock(get_supported_app_labels=MagicMock(return_value=app_labels),
167
                      has_module_perms=MagicMock(return_value=True)),
168
        ])
169
170
        backend = PermissionBackend()
171
        self.assertFalse(registry.get_handlers.called)
172
        self.assertFalse(registry.get_handlers()[0].get_supported_app_labels.called)
173
        self.assertFalse(registry.get_handlers()[1].get_supported_app_labels.called)
174
        self.assertFalse(registry.get_handlers()[0].has_module_perms.called)
175
        self.assertFalse(registry.get_handlers()[1].has_module_perms.called)
176
177
        self.assertTrue(backend.has_module_perms(self.user, 'permission'))
178
179
        self.assertTrue(registry.get_handlers.called)
180
        self.assertTrue(registry.get_handlers()[0].get_supported_app_labels.called)
181
        self.assertTrue(registry.get_handlers()[1].get_supported_app_labels.called)
182
        self.assertTrue(registry.get_handlers()[0].has_module_perms.called)
183
        self.assertTrue(registry.get_handlers()[1].has_module_perms.called)
184