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

PermissionUtilsLogicsTestCase.tearDown()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 2
rs 10
1
# coding=utf-8
2
from django.test import TestCase
3
from permission.logics import PermissionLogic
4
from permission.handlers import LogicalPermissionHandler
5
from permission.utils.handlers import registry
6
from permission.utils.logics import add_permission_logic
7
from permission.utils.logics import remove_permission_logic
8
from permission.tests.models import Article
9
from permission.tests.compat import MagicMock
10
11
12
class PermissionUtilsLogicsTestCase(TestCase):
13
    def setUp(self):
14
        self.mock_logic = MagicMock(spec=PermissionLogic)
15
        self.mock_logic2 = MagicMock(spec=PermissionLogic)
16
        # clear registry
17
        self.registry_backup = registry._registry
18
        registry._registry = {}
19
        # clear attributes
20
        if hasattr(Article, '_permission_logics'):
21
            delattr(Article, '_permission_logics')
22
        if hasattr(Article, '_permission_handler'):
23
            delattr(Article, '_permission_handler')
24
25
    def tearDown(self):
26
        registry._registry = self.registry_backup
27
28
    def test_add_permission_logic_private_attributes(self):
29
        m = self.mock_logic
30
        # the following private attribute should not be exists in Article model
31
        self.assertFalse(hasattr(Article, '_permission_logics'))
32
        self.assertFalse(hasattr(Article, '_permission_handler'))
33
34
        # but after add permission logic, they will be appeared
35
        add_permission_logic(Article, m)
36
        self.assertTrue(hasattr(Article, '_permission_logics'))
37
        self.assertTrue(hasattr(Article, '_permission_handler'))
38
39
    def test_add_permission_logic_registry(self):
40
        m = self.mock_logic
41
        # nothing have been registered in registry
42
        self.assertEqual(registry._registry, {})
43
        # but after add permission logic, they will be appeared
44
        add_permission_logic(Article, m)
45
        self.assertEqual(Article._permission_logics, set([m]))
46
        self.assertTrue(isinstance(registry._registry[Article],
47
                                   LogicalPermissionHandler))
48
49
    def test_remove_permission_logic_private_attributes(self):
50
        m = self.mock_logic
51
        add_permission_logic(Article, m)
52
        self.assertTrue(hasattr(Article, '_permission_logics'))
53
        self.assertTrue(hasattr(Article, '_permission_handler'))
54
55
        # private attribute should not be disappeared
56
        remove_permission_logic(Article, m)
57
        self.assertTrue(hasattr(Article, '_permission_logics'))
58
        self.assertTrue(hasattr(Article, '_permission_handler'))
59
60 View Code Duplication
    def test_remove_permission_logic_registry(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
61
        m = self.mock_logic
62
        add_permission_logic(Article, m)
63
        self.assertEqual(Article._permission_logics, set([m]))
64
        self.assertTrue(isinstance(registry._registry[Article],
65
                                   LogicalPermissionHandler))
66
67
        # permission_logics should be changed but registry
68
        # should not be changed
69
        remove_permission_logic(Article, m)
70
        self.assertEqual(Article._permission_logics, set())
71
        self.assertTrue(isinstance(registry._registry[Article],
72
                                   LogicalPermissionHandler))
73
74 View Code Duplication
    def test_remove_permission_logic_registry_with_class(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
75
        m = self.mock_logic
76
        m2 = self.mock_logic2
77
        add_permission_logic(Article, m)
78
        add_permission_logic(Article, m2)
79
        self.assertEqual(Article._permission_logics, set([m, m2]))
80
        self.assertTrue(isinstance(registry._registry[Article],
81
                                   LogicalPermissionHandler))
82
83
        # permission_logics should be changed but registry
84
        # should not be changed
85
        remove_permission_logic(Article, PermissionLogic)
86
        self.assertEqual(Article._permission_logics, set())
87
        self.assertTrue(isinstance(registry._registry[Article],
88
                                   LogicalPermissionHandler))
89
90
    def test_remove_permission_logic_exception(self):
91
        m = self.mock_logic
92
        add_permission_logic(Article, m)
93
        remove_permission_logic(Article, m)
94
        # it should not raise exception
95
        remove_permission_logic(Article, m)
96
        # it should raise exception if fail_silently is False
97
        self.assertRaises(KeyError,
98
                remove_permission_logic, Article, m,
99
                fail_silently=False)
100