Completed
Push — master ( f3cde9...b114e7 )
by
unknown
13s queued 11s
created

tests.protocols.gmpv7.test_modify_permission   A

Complexity

Total Complexity 26

Size/Duplication

Total Lines 201
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 113
dl 0
loc 201
rs 10
c 0
b 0
f 0
wmc 26

11 Methods

Rating   Name   Duplication   Size   Complexity  
A GmpModifyPermissionTestCase.setUp() 0 3 1
A GmpModifyPermissionTestCase.test_modify_permission_with_subject_id_and_type() 0 9 1
A GmpModifyPermissionTestCase.test_modify_permission() 0 7 1
A GmpModifyPermissionTestCase.test_modify_permission_with_missing_resource_type() 0 19 4
A GmpModifyPermissionTestCase.test_modify_permission_with_name() 0 8 1
A GmpModifyPermissionTestCase.test_modify_permission_with_missing_resource_id() 0 19 4
A GmpModifyPermissionTestCase.test_modify_permission_missing_subject_id() 0 19 4
A GmpModifyPermissionTestCase.test_modify_permission_with_resource_id_and_type() 0 9 1
A GmpModifyPermissionTestCase.test_modify_permission_with_comment() 0 8 1
A GmpModifyPermissionTestCase.test_modify_permission_invalid_subject_type() 0 20 4
A GmpModifyPermissionTestCase.test_modify_permission_missing_permission_id() 0 14 4
1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2018 Greenbone Networks GmbH
3
#
4
# SPDX-License-Identifier: GPL-3.0-or-later
5
#
6
# This program is free software: you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation, either version 3 of the License, or
9
# (at your option) any later version.
10
#
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
# GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19
import unittest
20
21
from gvm.errors import RequiredArgument, InvalidArgument
22
from gvm.protocols.gmpv7 import Gmp
23
24
from .. import MockConnection
25
26
27
class GmpModifyPermissionTestCase(unittest.TestCase):
28
29
    def setUp(self):
30
        self.connection = MockConnection()
31
        self.gmp = Gmp(self.connection)
32
33
    def test_modify_permission(self):
34
        self.gmp.modify_permission(
35
            permission_id='p1',
36
        )
37
38
        self.connection.send.has_been_called_with(
39
            '<modify_permission permission_id="p1"/>'
40
        )
41
42
    def test_modify_permission_missing_permission_id(self):
43
        with self.assertRaises(RequiredArgument):
44
            self.gmp.modify_permission(
45
                permission_id=None,
46
            )
47
48
        with self.assertRaises(RequiredArgument):
49
            self.gmp.modify_permission(
50
                permission_id='',
51
            )
52
53
        with self.assertRaises(RequiredArgument):
54
            self.gmp.modify_permission(
55
                '',
56
            )
57
58
    def test_modify_permission_with_comment(self):
59
        self.gmp.modify_permission(
60
            permission_id='p1',
61
            comment='foo',
62
        )
63
64
        self.connection.send.has_been_called_with(
65
            '<modify_permission permission_id="p1">'
66
            '<comment>foo</comment>'
67
            '</modify_permission>'
68
        )
69
70
    def test_modify_permission_with_resource_id_and_type(self):
71
        self.gmp.modify_permission(
72
            permission_id='p1',
73
            resource_id='r1',
74
            resource_type='foo',
75
        )
76
77
        self.connection.send.has_been_called_with(
78
            '<modify_permission permission_id="p1">'
79
            '<resource id="r1">'
80
            '<type>foo</type>'
81
            '</resource>'
82
            '</modify_permission>'
83
        )
84
85
    def test_modify_permission_with_missing_resource_id(self):
86
        with self.assertRaises(RequiredArgument):
87
            self.gmp.modify_permission(
88
                permission_id='p1',
89
                resource_id='',
90
                resource_type='foo',
91
            )
92
93
        with self.assertRaises(RequiredArgument):
94
            self.gmp.modify_permission(
95
                permission_id='p1',
96
                resource_type='foo',
97
            )
98
99
        with self.assertRaises(RequiredArgument):
100
            self.gmp.modify_permission(
101
                permission_id='p1',
102
                resource_id=None,
103
                resource_type='foo',
104
            )
105
106
    def test_modify_permission_with_missing_resource_type(self):
107
        with self.assertRaises(RequiredArgument):
108
            self.gmp.modify_permission(
109
                permission_id='p1',
110
                resource_id='r1',
111
                resource_type='',
112
            )
113
114
        with self.assertRaises(RequiredArgument):
115
            self.gmp.modify_permission(
116
                permission_id='p1',
117
                resource_id='r1',
118
            )
119
120
        with self.assertRaises(RequiredArgument):
121
            self.gmp.modify_permission(
122
                permission_id='p1',
123
                resource_id='r1',
124
                resource_type=None,
125
            )
126
127
128
    def test_modify_permission_with_subject_id_and_type(self):
129
        self.gmp.modify_permission(
130
            permission_id='p1',
131
            subject_id='s1',
132
            subject_type='role',
133
        )
134
135
        self.connection.send.has_been_called_with(
136
            '<modify_permission permission_id="p1">'
137
            '<subject id="s1">'
138
            '<type>role</type>'
139
            '</subject>'
140
            '</modify_permission>'
141
        )
142
143
    def test_modify_permission_missing_subject_id(self):
144
        with self.assertRaises(RequiredArgument):
145
            self.gmp.modify_permission(
146
                permission_id='p1',
147
                subject_type='role',
148
            )
149
150
        with self.assertRaises(RequiredArgument):
151
            self.gmp.modify_permission(
152
                permission_id='p1',
153
                subject_type='role',
154
                subject_id='',
155
            )
156
157
        with self.assertRaises(RequiredArgument):
158
            self.gmp.modify_permission(
159
                permission_id='p1',
160
                subject_type='role',
161
                subject_id=None,
162
            )
163
164
    def test_modify_permission_invalid_subject_type(self):
165
        with self.assertRaises(InvalidArgument):
166
            self.gmp.modify_permission(
167
                permission_id='p1',
168
                subject_id='s1',
169
                subject_type='foo',
170
            )
171
172
        with self.assertRaises(InvalidArgument):
173
            self.gmp.modify_permission(
174
                permission_id='p1',
175
                subject_id='s1',
176
                subject_type='',
177
            )
178
179
        with self.assertRaises(InvalidArgument):
180
            self.gmp.modify_permission(
181
                permission_id='p1',
182
                subject_id='s1',
183
                subject_type=None,
184
            )
185
186
    def test_modify_permission_with_name(self):
187
        self.gmp.modify_permission(
188
            permission_id='p1',
189
            name='foo',
190
        )
191
192
        self.connection.send.has_been_called_with(
193
            '<modify_permission permission_id="p1">'
194
            '<name>foo</name>'
195
            '</modify_permission>'
196
        )
197
198
199
if __name__ == '__main__':
200
    unittest.main()
201