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

GmpModifyOverrideTestCase.test_modify_override_invalid_threat()   A

Complexity

Conditions 3

Size

Total Lines 13
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 11
nop 1
dl 0
loc 13
rs 9.85
c 0
b 0
f 0
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 decimal import Decimal
22
23
from gvm.errors import RequiredArgument, InvalidArgument
24
from gvm.protocols.gmpv7 import Gmp
25
26
from .. import MockConnection
27
28
29
class GmpModifyOverrideTestCase(unittest.TestCase):
30
31
    def setUp(self):
32
        self.connection = MockConnection()
33
        self.gmp = Gmp(self.connection)
34
35
    def test_modify_override(self):
36
        self.gmp.modify_override(
37
            override_id='o1',
38
            text='foo',
39
        )
40
41
        self.connection.send.has_been_called_with(
42
            '<modify_override override_id="o1">'
43
            '<text>foo</text>'
44
            '</modify_override>'
45
        )
46
47
    def test_modify_override_missing_override_id(self):
48
        with self.assertRaises(RequiredArgument):
49
            self.gmp.modify_override(
50
                override_id=None,
51
                text='foo'
52
            )
53
54
        with self.assertRaises(RequiredArgument):
55
            self.gmp.modify_override(
56
                override_id='',
57
                text='foo'
58
            )
59
60
        with self.assertRaises(RequiredArgument):
61
            self.gmp.modify_override(
62
                '',
63
                text='foo'
64
            )
65
66
    def test_modify_override_missing_text(self):
67
        with self.assertRaises(RequiredArgument):
68
            self.gmp.modify_override(
69
                override_id='o1',
70
                text=''
71
            )
72
73
        with self.assertRaises(RequiredArgument):
74
            self.gmp.modify_override(
75
                override_id='o1',
76
                text=None,
77
            )
78
79
        with self.assertRaises(RequiredArgument):
80
            self.gmp.modify_override(
81
                'o1',
82
                ''
83
            )
84
85
    def test_modify_override_with_seconds_active(self):
86
        self.gmp.modify_override(
87
            override_id='o1',
88
            text='foo',
89
            seconds_active=0,
90
        )
91
92
        self.connection.send.has_been_called_with(
93
            '<modify_override override_id="o1">'
94
            '<text>foo</text>'
95
            '<active>0</active>'
96
            '</modify_override>'
97
        )
98
99
        self.gmp.modify_override(
100
            override_id='o1',
101
            text='foo',
102
            seconds_active=-1,
103
        )
104
105
        self.connection.send.has_been_called_with(
106
            '<modify_override override_id="o1">'
107
            '<text>foo</text>'
108
            '<active>-1</active>'
109
            '</modify_override>'
110
        )
111
112
        self.gmp.modify_override(
113
            override_id='o1',
114
            text='foo',
115
            seconds_active=600,
116
        )
117
118
        self.connection.send.has_been_called_with(
119
            '<modify_override override_id="o1">'
120
            '<text>foo</text>'
121
            '<active>600</active>'
122
            '</modify_override>'
123
        )
124
    def test_modify_override_with_port(self):
125
        self.gmp.modify_override(
126
            override_id='o1',
127
            text='foo',
128
            port='123',
129
        )
130
131
        self.connection.send.has_been_called_with(
132
            '<modify_override override_id="o1">'
133
            '<text>foo</text>'
134
            '<port>123</port>'
135
            '</modify_override>'
136
        )
137
138
        self.gmp.modify_override(
139
            override_id='o1',
140
            text='foo',
141
            port=123,
142
        )
143
144
        self.connection.send.has_been_called_with(
145
            '<modify_override override_id="o1">'
146
            '<text>foo</text>'
147
            '<port>123</port>'
148
            '</modify_override>'
149
        )
150
151
    def test_modify_override_with_hosts(self):
152
        self.gmp.modify_override(
153
            override_id='o1',
154
            text='foo',
155
            hosts=['foo'],
156
        )
157
158
        self.connection.send.has_been_called_with(
159
            '<modify_override override_id="o1">'
160
            '<text>foo</text>'
161
            '<hosts>foo</hosts>'
162
            '</modify_override>'
163
        )
164
165
        self.gmp.modify_override(
166
            override_id='o1',
167
            text='foo',
168
            hosts=['foo', 'bar'],
169
        )
170
171
        self.connection.send.has_been_called_with(
172
            '<modify_override override_id="o1">'
173
            '<text>foo</text>'
174
            '<hosts>foo,bar</hosts>'
175
            '</modify_override>'
176
        )
177
178
    def test_modify_override_with_result_id(self):
179
        self.gmp.modify_override(
180
            override_id='o1',
181
            text='foo',
182
            result_id='r1',
183
        )
184
185
        self.connection.send.has_been_called_with(
186
            '<modify_override override_id="o1">'
187
            '<text>foo</text>'
188
            '<result id="r1"/>'
189
            '</modify_override>'
190
        )
191
192
    def test_modify_override_with_task_id(self):
193
        self.gmp.modify_override(
194
            override_id='o1',
195
            text='foo',
196
            task_id='r1',
197
        )
198
199
        self.connection.send.has_been_called_with(
200
            '<modify_override override_id="o1">'
201
            '<text>foo</text>'
202
            '<task id="r1"/>'
203
            '</modify_override>'
204
        )
205
206
    def test_modify_override_with_severity(self):
207
        self.gmp.modify_override(
208
            override_id='o1',
209
            text='foo',
210
            severity='5.5',
211
        )
212
213
        self.connection.send.has_been_called_with(
214
            '<modify_override override_id="o1">'
215
            '<text>foo</text>'
216
            '<severity>5.5</severity>'
217
            '</modify_override>'
218
        )
219
220
        self.gmp.modify_override(
221
            override_id='o1',
222
            text='foo',
223
            severity=5.5,
224
        )
225
226
        self.connection.send.has_been_called_with(
227
            '<modify_override override_id="o1">'
228
            '<text>foo</text>'
229
            '<severity>5.5</severity>'
230
            '</modify_override>'
231
        )
232
233
        self.gmp.modify_override(
234
            override_id='o1',
235
            text='foo',
236
            severity=Decimal(5.5),
237
        )
238
239
        self.connection.send.has_been_called_with(
240
            '<modify_override override_id="o1">'
241
            '<text>foo</text>'
242
            '<severity>5.5</severity>'
243
            '</modify_override>'
244
        )
245
246
    def test_modify_override_with_new_severity(self):
247
        self.gmp.modify_override(
248
            override_id='o1',
249
            text='foo',
250
            new_severity='5.5',
251
        )
252
253
        self.connection.send.has_been_called_with(
254
            '<modify_override override_id="o1">'
255
            '<text>foo</text>'
256
            '<new_severity>5.5</new_severity>'
257
            '</modify_override>'
258
        )
259
260
        self.gmp.modify_override(
261
            override_id='o1',
262
            text='foo',
263
            new_severity=5.5,
264
        )
265
266
        self.connection.send.has_been_called_with(
267
            '<modify_override override_id="o1">'
268
            '<text>foo</text>'
269
            '<new_severity>5.5</new_severity>'
270
            '</modify_override>'
271
        )
272
273
        self.gmp.modify_override(
274
            override_id='o1',
275
            text='foo',
276
            new_severity=Decimal(5.5),
277
        )
278
279
        self.connection.send.has_been_called_with(
280
            '<modify_override override_id="o1">'
281
            '<text>foo</text>'
282
            '<new_severity>5.5</new_severity>'
283
            '</modify_override>'
284
        )
285
286
    def test_modify_override_with_threat(self):
287
        self.gmp.modify_override(
288
            override_id='o1',
289
            text='foo',
290
            threat='High',
291
        )
292
293
        self.connection.send.has_been_called_with(
294
            '<modify_override override_id="o1">'
295
            '<text>foo</text>'
296
            '<threat>High</threat>'
297
            '</modify_override>'
298
        )
299
300
    def test_modify_override_invalid_threat(self):
301
        with self.assertRaises(InvalidArgument):
302
            self.gmp.modify_override(
303
                override_id='o1',
304
                text='foo',
305
                threat='',
306
            )
307
308
        with self.assertRaises(InvalidArgument):
309
            self.gmp.modify_override(
310
                override_id='o1',
311
                text='foo',
312
                threat='foo',
313
            )
314
315
    def test_modify_override_with_new_threat(self):
316
        self.gmp.modify_override(
317
            override_id='o1',
318
            text='foo',
319
            new_threat='High',
320
        )
321
322
        self.connection.send.has_been_called_with(
323
            '<modify_override override_id="o1">'
324
            '<text>foo</text>'
325
            '<new_threat>High</new_threat>'
326
            '</modify_override>'
327
        )
328
329
    def test_modify_override_invalid_new_threat(self):
330
        with self.assertRaises(InvalidArgument):
331
            self.gmp.modify_override(
332
                override_id='o1',
333
                text='foo',
334
                new_threat='',
335
            )
336
337
        with self.assertRaises(InvalidArgument):
338
            self.gmp.modify_override(
339
                override_id='o1',
340
                text='foo',
341
                new_threat='foo',
342
            )
343
344
345
if __name__ == '__main__':
346
    unittest.main()
347