Passed
Pull Request — master (#87)
by
unknown
03:06
created

tests.protocols.gmpv7.test_modify_config_set_family_selection   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 219
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 80
dl 0
loc 219
rs 10
c 0
b 0
f 0
wmc 12

6 Methods

Rating   Name   Duplication   Size   Complexity  
A GmpModifyConfigSetFamilySelectionTestCase.setUp() 0 3 1
A GmpModifyConfigSetFamilySelectionTestCase.test_modify_config_set_family_selection_with_auto_add_new_nvts() 0 28 1
A GmpModifyConfigSetFamilySelectionTestCase.test_modify_config_set_family_selection() 0 49 1
A GmpModifyConfigSetFamilySelectionTestCase.test_modify_config_set_family_selection_invalid_families() 0 17 4
A GmpModifyConfigSetFamilySelectionTestCase.test_modify_config_set_family_selection_missing_config_id() 0 17 4
A GmpModifyConfigSetFamilySelectionTestCase.test_modify_config_set_family_selection_with_auto_add_new_families() 0 29 1
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 GmpModifyConfigSetFamilySelectionTestCase(unittest.TestCase):
28
29
    def setUp(self):
30
        self.connection = MockConnection()
31
        self.gmp = Gmp(self.connection)
32
33
    def test_modify_config_set_family_selection(self):
34
        self.gmp.modify_config_set_family_selection(
35
            config_id='c1',
36
            families=['foo'],
37
        )
38
39
        self.connection.send.has_been_called_with(
40
            '<modify_config config_id="c1">'
41
            '<family_selection>'
42
            '<growing>1</growing>'
43
            '<family>'
44
            '<name>foo</name>'
45
            '<all>1</all>'
46
            '<growing>1</growing>'
47
            '</family>'
48
            '</family_selection>'
49
            '</modify_config>'
50
        )
51
52
        self.gmp.modify_config_set_family_selection(
53
            config_id='c1',
54
            families=['foo', 'bar'],
55
        )
56
57
        self.connection.send.has_been_called_with(
58
            '<modify_config config_id="c1">'
59
            '<family_selection>'
60
            '<growing>1</growing>'
61
            '<family>'
62
            '<name>foo</name>'
63
            '<all>1</all>'
64
            '<growing>1</growing>'
65
            '</family>'
66
            '<family>'
67
            '<name>bar</name>'
68
            '<all>1</all>'
69
            '<growing>1</growing>'
70
            '</family>'
71
            '</family_selection>'
72
            '</modify_config>'
73
        )
74
75
        self.gmp.modify_config_set_family_selection(
76
            config_id='c1',
77
            families=('foo', 'bar'),
78
        )
79
80
        self.connection.send.has_been_called_with(
81
            '<modify_config config_id="c1">'
82
            '<family_selection>'
83
            '<growing>1</growing>'
84
            '<family>'
85
            '<name>foo</name>'
86
            '<all>1</all>'
87
            '<growing>1</growing>'
88
            '</family>'
89
            '<family>'
90
            '<name>bar</name>'
91
            '<all>1</all>'
92
            '<growing>1</growing>'
93
            '</family>'
94
            '</family_selection>'
95
            '</modify_config>'
96
        )
97
98
99
    def test_modify_config_set_family_selection_missing_config_id(self):
100
        with self.assertRaises(RequiredArgument):
101
            self.gmp.modify_config_set_family_selection(
102
                config_id=None,
103
                families=['foo'],
104
            )
105
106
        with self.assertRaises(RequiredArgument):
107
            self.gmp.modify_config_set_family_selection(
108
                config_id='',
109
                families=['foo'],
110
            )
111
112
        with self.assertRaises(RequiredArgument):
113
            self.gmp.modify_config_set_family_selection(
114
                '',
115
                ['foo'],
116
            )
117
118
    def test_modify_config_set_family_selection_invalid_families(self):
119
        with self.assertRaises(InvalidArgument):
120
            self.gmp.modify_config_set_family_selection(
121
                config_id='c1',
122
                families=None,
123
            )
124
125
        with self.assertRaises(InvalidArgument):
126
            self.gmp.modify_config_set_family_selection(
127
                config_id='c1',
128
                families='',
129
            )
130
131
        with self.assertRaises(InvalidArgument):
132
            self.gmp.modify_config_set_family_selection(
133
                'c1',
134
                ''
135
            )
136
137
    def test_modify_config_set_family_selection_with_auto_add_new_families(
138
            self):
139
        self.gmp.modify_config_set_family_selection(
140
            config_id='c1',
141
            families=['foo'],
142
            auto_add_new_families=True,
143
        )
144
145
        self.connection.send.has_been_called_with(
146
            '<modify_config config_id="c1">'
147
            '<family_selection>'
148
            '<growing>1</growing>'
149
            '<family>'
150
            '<name>foo</name>'
151
            '<all>1</all>'
152
            '<growing>1</growing>'
153
            '</family>'
154
            '</family_selection>'
155
            '</modify_config>'
156
        )
157
158
        self.gmp.modify_config_set_family_selection(
159
            config_id='c1',
160
            families=['foo'],
161
            auto_add_new_families=False,
162
        )
163
164
        self.connection.send.has_been_called_with(
165
            '<modify_config config_id="c1">'
166
            '<family_selection>'
167
            '<growing>0</growing>'
168
            '<family>'
169
            '<name>foo</name>'
170
            '<all>1</all>'
171
            '<growing>1</growing>'
172
            '</family>'
173
            '</family_selection>'
174
            '</modify_config>'
175
        )
176
177
    def test_modify_config_set_family_selection_with_auto_add_new_nvts(self):
178
        self.gmp.modify_config_set_family_selection(
179
            config_id='c1',
180
            families=['foo'],
181
            auto_add_new_nvts=True,
182
        )
183
184
        self.connection.send.has_been_called_with(
185
            '<modify_config config_id="c1">'
186
            '<family_selection>'
187
            '<growing>1</growing>'
188
            '<family>'
189
            '<name>foo</name>'
190
            '<all>1</all>'
191
            '<growing>1</growing>'
192
            '</family>'
193
            '</family_selection>'
194
            '</modify_config>'
195
        )
196
197
        self.gmp.modify_config_set_family_selection(
198
            config_id='c1',
199
            families=['foo'],
200
            auto_add_new_nvts=False,
201
        )
202
203
        self.connection.send.has_been_called_with(
204
            '<modify_config config_id="c1">'
205
            '<family_selection>'
206
            '<growing>1</growing>'
207
            '<family>'
208
            '<name>foo</name>'
209
            '<all>1</all>'
210
            '<growing>0</growing>'
211
            '</family>'
212
            '</family_selection>'
213
            '</modify_config>'
214
        )
215
216
217
if __name__ == '__main__':
218
    unittest.main()
219