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.

PermissionDecoratorsTestCase   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 73
rs 10
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 13 1
A test_method_views() 0 14 1
A test_permission_required() 0 12 1
A tearDown() 0 3 1
A test_class_views() 0 12 1
A test_function_views() 0 11 1
1
from django.test import TestCase
2
from django.http import HttpRequest
3
from django.core.exceptions import PermissionDenied
4
from ...utils.handlers import registry
5
from ...decorators.functionbase import permission_required as f
6
from ...decorators.methodbase import permission_required as m
7
from ...decorators.classbase import permission_required as c
8
from ...decorators import permission_required as p
9
from ..compat import MagicMock
10
from .utils import (
11
    create_mock_handler,
12
    create_mock_request,
13
    create_mock_queryset,
14
    create_mock_model,
15
    create_mock_view_func,
16
    create_mock_view_class,
17
)
18
19
p = p('permission.add_article')
20
c = c('permission.add_article')
21
m = m('permission.add_article')
22
f = f('permission.add_article')
23
24
model = create_mock_model()
25
instance = model()
26
27
28
def view_func(request, *args, **kwargs):
29
    assert isinstance(request, HttpRequest)
30
try:
31
    from django.views.generic import View as BaseView
32
except ImportError:
33
    # Classbased generic view related test will not be run so never mind.
34
    BaseView = object
35
36
37
class View(BaseView):
38
    def dispatch(self, request, *args, **kwargs):
39
        assert isinstance(self, View)
40
        assert isinstance(request, HttpRequest)
41
    def get_object(self, queryset=None):
42
        return instance
43
44
45
class PermissionDecoratorsTestCase(TestCase):
46
47
    def setUp(self):
48
        self.handler = create_mock_handler()
49
        self.request = create_mock_request(self.handler)
50
        self.queryset = create_mock_queryset(instance)
51
52
        # store original registry
53
        self._original_registry = registry._registry
54
55
        # clear registry and register mock handler
56
        registry._registry = {}
57
        registry.register(
58
                model,
59
                self.handler,
60
            )
61
62
    def tearDown(self):
63
        # restore original registry
64
        registry._registry = self._original_registry
65
66
    def test_function_views(self):
67
68
        # class decorator cannot handle
69
        self.assertRaises(AttributeError, c, view_func)
70
        # method decorator can handle
71
        method_view = m(view_func)
72
        method_view(self.request, self.queryset, object_id=1)
73
74
        # function decorator can handle
75
        function_view = f(view_func)
76
        function_view(self.request, self.queryset, object_id=1)
77
78
    def test_method_views(self):
79
        view_method = View.dispatch
80
81
        # class decorator cannot handle
82
        self.assertRaises(AttributeError, c, View.dispatch)
83
84
        # method decorator can handle
85
        method_view = m(View.dispatch)
86
        method_view(View(), self.request, pk=1)
87
88
        # function decorators cannot handle
89
        function_view = f(View.dispatch)
90
        self.assertRaises(AttributeError, function_view,
91
                          View(), self.request, pk=1)
92
93
    def test_class_views(self):
94
        # class decorator can handle
95
        class_view = c(View)
96
        class_view.as_view()(self.request, pk=1)
97
98
        # method decorator cannot handle
99
        method_view = m(View)
100
        self.assertFalse(hasattr(method_view, 'as_view'))
101
102
        # function decorator cannot handle
103
        function_view = f(View)
104
        self.assertFalse(hasattr(method_view, 'as_view'))
105
106
    def test_permission_required(self):
107
        # function
108
        functional_view = p(view_func)
109
        functional_view(self.request, queryset=self.queryset, object_id=1)
110
111
        # method
112
        method_view = p(View.dispatch)
113
        method_view(View(), self.request, pk=1)
114
115
        # class
116
        class_view = p(View)
117
        class_view.as_view()(self.request, pk=1)
118