Passed
Push — master ( 1e243f...b519bb )
by Björn
197:44 queued 153:47
created

tests.protocols.gmpv208.entities.policies.test_modify_policy_set_family_selection   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 233
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 76
dl 0
loc 233
rs 10
c 0
b 0
f 0
wmc 15

5 Methods

Rating   Name   Duplication   Size   Complexity  
A GmpModifyPolicySetFamilySelectionTestMixin.test_modify_policy_set_family_selection_with_auto_add_new_families() 0 30 1
A GmpModifyPolicySetFamilySelectionTestMixin.test_modify_policy_set_family_selection() 0 47 1
A GmpModifyPolicySetFamilySelectionTestMixin.test_modify_policy_set_family_selection_missing_config_id() 0 14 4
A GmpModifyPolicySetFamilySelectionTestMixin.test_modify_policy_set_family_selection_invalid_families() 0 13 4
B GmpModifyPolicySetFamilySelectionTestMixin.test_modify_policy_set_family_selection_with_auto_add_new_nvts() 0 76 5
1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2020-2021 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
from gvm.errors import RequiredArgument, InvalidArgumentType, InvalidArgument
20
21
22
class GmpModifyPolicySetFamilySelectionTestMixin:
23
    def test_modify_policy_set_family_selection(self):
24
        self.gmp.modify_policy_set_family_selection(
25
            policy_id='c1', families=[('foo', True, True)]
26
        )
27
28
        self.connection.send.has_been_called_with(
29
            '<modify_config config_id="c1">'
30
            '<family_selection>'
31
            '<growing>1</growing>'
32
            '<family>'
33
            '<name>foo</name>'
34
            '<all>1</all>'
35
            '<growing>1</growing>'
36
            '</family>'
37
            '</family_selection>'
38
            '</modify_config>'
39
        )
40
41
        self.gmp.modify_policy_set_family_selection(
42
            policy_id='c1', families=(('foo', True, True), ('bar', True, True))
43
        )
44
45
        self.connection.send.has_been_called_with(
46
            '<modify_config config_id="c1">'
47
            '<family_selection>'
48
            '<growing>1</growing>'
49
            '<family>'
50
            '<name>foo</name>'
51
            '<all>1</all>'
52
            '<growing>1</growing>'
53
            '</family>'
54
            '<family>'
55
            '<name>bar</name>'
56
            '<all>1</all>'
57
            '<growing>1</growing>'
58
            '</family>'
59
            '</family_selection>'
60
            '</modify_config>'
61
        )
62
63
        self.gmp.modify_policy_set_family_selection(
64
            policy_id='c1',
65
            families=[('foo', True, False), ('bar', False, True)],
66
        )
67
68
        self.connection.send.has_been_called_with(
69
            '<modify_config config_id="c1">'
70
            '<family_selection>'
71
            '<growing>1</growing>'
72
            '<family>'
73
            '<name>foo</name>'
74
            '<all>0</all>'
75
            '<growing>1</growing>'
76
            '</family>'
77
            '<family>'
78
            '<name>bar</name>'
79
            '<all>1</all>'
80
            '<growing>0</growing>'
81
            '</family>'
82
            '</family_selection>'
83
            '</modify_config>'
84
        )
85
86
    def test_modify_policy_set_family_selection_missing_config_id(self):
87
        with self.assertRaises(RequiredArgument):
88
            self.gmp.modify_policy_set_family_selection(
89
                policy_id=None, families=[('foo', True, True)]
90
            )
91
92
        with self.assertRaises(RequiredArgument):
93
            self.gmp.modify_policy_set_family_selection(
94
                policy_id='', families=[('foo', True, True)]
95
            )
96
97
        with self.assertRaises(RequiredArgument):
98
            self.gmp.modify_policy_set_family_selection(
99
                '', [('foo', True, True)]
100
            )
101
102
    def test_modify_policy_set_family_selection_invalid_families(self):
103
        with self.assertRaises(InvalidArgumentType):
104
            self.gmp.modify_policy_set_family_selection(
105
                policy_id='c1', families=None
106
            )
107
108
        with self.assertRaises(InvalidArgumentType):
109
            self.gmp.modify_policy_set_family_selection(
110
                policy_id='c1', families=''
111
            )
112
113
        with self.assertRaises(InvalidArgumentType):
114
            self.gmp.modify_policy_set_family_selection('c1', '')
115
116
    def test_modify_policy_set_family_selection_with_auto_add_new_families(
117
        self,
118
    ):
119
        self.gmp.modify_policy_set_family_selection(
120
            policy_id='c1',
121
            families=[('foo', True, True)],
122
            auto_add_new_families=True,
123
        )
124
125
        self.connection.send.has_been_called_with(
126
            '<modify_config config_id="c1">'
127
            '<family_selection>'
128
            '<growing>1</growing>'
129
            '<family>'
130
            '<name>foo</name>'
131
            '<all>1</all>'
132
            '<growing>1</growing>'
133
            '</family>'
134
            '</family_selection>'
135
            '</modify_config>'
136
        )
137
138
        self.gmp.modify_policy_set_family_selection(
139
            policy_id='c1',
140
            families=[('foo', True, True)],
141
            auto_add_new_families=False,
142
        )
143
144
        self.connection.send.has_been_called_with(
145
            '<modify_config config_id="c1">'
146
            '<family_selection>'
147
            '<growing>0</growing>'
148
            '<family>'
149
            '<name>foo</name>'
150
            '<all>1</all>'
151
            '<growing>1</growing>'
152
            '</family>'
153
            '</family_selection>'
154
            '</modify_config>'
155
        )
156
157
    def test_modify_policy_set_family_selection_with_auto_add_new_nvts(self):
158
        self.gmp.modify_policy_set_family_selection(
159
            policy_id='c1', families=[('foo', True, True)]
160
        )
161
162
        self.connection.send.has_been_called_with(
163
            '<modify_config config_id="c1">'
164
            '<family_selection>'
165
            '<growing>1</growing>'
166
            '<family>'
167
            '<name>foo</name>'
168
            '<all>1</all>'
169
            '<growing>1</growing>'
170
            '</family>'
171
            '</family_selection>'
172
            '</modify_config>'
173
        )
174
175
        self.gmp.modify_policy_set_family_selection(
176
            policy_id='c1', families=[('foo', False, True)]
177
        )
178
179
        self.connection.send.has_been_called_with(
180
            '<modify_config config_id="c1">'
181
            '<family_selection>'
182
            '<growing>1</growing>'
183
            '<family>'
184
            '<name>foo</name>'
185
            '<all>1</all>'
186
            '<growing>0</growing>'
187
            '</family>'
188
            '</family_selection>'
189
            '</modify_config>'
190
        )
191
192
        self.gmp.modify_policy_set_family_selection(
193
            policy_id='c1',
194
            families=[('foo', False, True), ('bar', True, False)],
195
        )
196
197
        self.connection.send.has_been_called_with(
198
            '<modify_config config_id="c1">'
199
            '<family_selection>'
200
            '<growing>1</growing>'
201
            '<family>'
202
            '<name>foo</name>'
203
            '<all>1</all>'
204
            '<growing>0</growing>'
205
            '</family>'
206
            '<family>'
207
            '<name>bar</name>'
208
            '<all>0</all>'
209
            '<growing>1</growing>'
210
            '</family>'
211
            '</family_selection>'
212
            '</modify_config>'
213
        )
214
215
        with self.assertRaises(InvalidArgumentType):
216
            self.gmp.modify_policy_set_family_selection(
217
                policy_id='c1', families=[('foo', 'False', 'True')]
218
            )
219
220
        with self.assertRaises(InvalidArgumentType):
221
            self.gmp.modify_policy_set_family_selection(
222
                policy_id='c1', families=[('foo', True, None)]
223
            )
224
225
        with self.assertRaises(InvalidArgumentType):
226
            self.gmp.modify_policy_set_family_selection(
227
                policy_id='c1', families=[('foo', 'True', False)]
228
            )
229
230
        with self.assertRaises(InvalidArgument):
231
            self.gmp.modify_policy_set_family_selection(
232
                policy_id='c1', families=[('foo',)]
233
            )
234