Code Duplication    Length = 406-406 lines in 2 locations

tests/protocols/gmpv9/testcmds/test_create_audit.py 1 location

@@ 29-434 (lines=406) @@
26
from gvm.protocols.gmpv9 import HostsOrdering
27
28
29
class GmpCreateAuditCommandTestCase:
30
    def test_create_task(self):
31
        self.gmp.create_audit(
32
            name='foo', policy_id='c1', target_id='t1', scanner_id='s1'
33
        )
34
35
        self.connection.send.has_been_called_with(
36
            '<create_task>'
37
            '<name>foo</name>'
38
            '<usage_type>audit</usage_type>'
39
            '<config id="c1"/>'
40
            '<target id="t1"/>'
41
            '<scanner id="s1"/>'
42
            '</create_task>'
43
        )
44
45
    def test_create_audit_missing_name(self):
46
        with self.assertRaises(RequiredArgument):
47
            self.gmp.create_audit(
48
                name=None, policy_id='c1', target_id='t1', scanner_id='s1'
49
            )
50
51
        with self.assertRaises(RequiredArgument):
52
            self.gmp.create_audit(
53
                name='', policy_id='c1', target_id='t1', scanner_id='s1'
54
            )
55
56
    def test_create_audit_missing_policy_id(self):
57
        with self.assertRaises(RequiredArgument):
58
            self.gmp.create_audit(
59
                name='foo', policy_id=None, target_id='t1', scanner_id='s1'
60
            )
61
62
        with self.assertRaises(RequiredArgument):
63
            self.gmp.create_audit(
64
                name='foo', policy_id='', target_id='t1', scanner_id='s1'
65
            )
66
67
    def test_create_audit_missing_target_id(self):
68
        with self.assertRaises(RequiredArgument):
69
            self.gmp.create_audit(
70
                name='foo', policy_id='c1', target_id=None, scanner_id='s1'
71
            )
72
73
        with self.assertRaises(RequiredArgument):
74
            self.gmp.create_audit(
75
                name='foo', policy_id='c1', target_id='', scanner_id='s1'
76
            )
77
78
    def test_create_audit_missing_scanner_id(self):
79
        with self.assertRaises(RequiredArgument):
80
            self.gmp.create_audit(
81
                name='foo', policy_id='c1', target_id='t1', scanner_id=None
82
            )
83
84
        with self.assertRaises(RequiredArgument):
85
            self.gmp.create_audit(
86
                name='foo', policy_id='c1', target_id='t1', scanner_id=''
87
            )
88
89
    def test_create_audit_with_comment(self):
90
        self.gmp.create_audit(
91
            name='foo',
92
            policy_id='c1',
93
            target_id='t1',
94
            scanner_id='s1',
95
            comment='bar',
96
        )
97
98
        self.connection.send.has_been_called_with(
99
            '<create_task>'
100
            '<name>foo</name>'
101
            '<usage_type>audit</usage_type>'
102
            '<config id="c1"/>'
103
            '<target id="t1"/>'
104
            '<scanner id="s1"/>'
105
            '<comment>bar</comment>'
106
            '</create_task>'
107
        )
108
109
    def test_create_audit_single_alert(self):
110
        # pylint: disable=invalid-name
111
        with warnings.catch_warnings(record=True) as w:
112
            warnings.simplefilter("always")
113
114
            self.gmp.create_audit(
115
                name='foo',
116
                policy_id='c1',
117
                target_id='t1',
118
                scanner_id='s1',
119
                alert_ids='a1',  # will be removed in future
120
            )
121
122
            self.assertEqual(len(w), 1)
123
            self.assertTrue(issubclass(w[0].category, DeprecationWarning))
124
125
        self.connection.send.has_been_called_with(
126
            '<create_task>'
127
            '<name>foo</name>'
128
            '<usage_type>audit</usage_type>'
129
            '<config id="c1"/>'
130
            '<target id="t1"/>'
131
            '<scanner id="s1"/>'
132
            '<alert id="a1"/>'
133
            '</create_task>'
134
        )
135
136
        self.gmp.create_audit(
137
            name='foo',
138
            policy_id='c1',
139
            target_id='t1',
140
            scanner_id='s1',
141
            alert_ids=['a1'],
142
        )
143
144
        self.connection.send.has_been_called_with(
145
            '<create_task>'
146
            '<name>foo</name>'
147
            '<usage_type>audit</usage_type>'
148
            '<config id="c1"/>'
149
            '<target id="t1"/>'
150
            '<scanner id="s1"/>'
151
            '<alert id="a1"/>'
152
            '</create_task>'
153
        )
154
155
    def test_create_audit_multiple_alerts(self):
156
        self.gmp.create_audit(
157
            name='foo',
158
            policy_id='c1',
159
            target_id='t1',
160
            scanner_id='s1',
161
            alert_ids=['a1', 'a2', 'a3'],
162
        )
163
164
        self.connection.send.has_been_called_with(
165
            '<create_task>'
166
            '<name>foo</name>'
167
            '<usage_type>audit</usage_type>'
168
            '<config id="c1"/>'
169
            '<target id="t1"/>'
170
            '<scanner id="s1"/>'
171
            '<alert id="a1"/>'
172
            '<alert id="a2"/>'
173
            '<alert id="a3"/>'
174
            '</create_task>'
175
        )
176
177
    def test_create_audit_with_alterable(self):
178
        self.gmp.create_audit(
179
            name='foo',
180
            policy_id='c1',
181
            target_id='t1',
182
            scanner_id='s1',
183
            alterable=True,
184
        )
185
186
        self.connection.send.has_been_called_with(
187
            '<create_task>'
188
            '<name>foo</name>'
189
            '<usage_type>audit</usage_type>'
190
            '<config id="c1"/>'
191
            '<target id="t1"/>'
192
            '<scanner id="s1"/>'
193
            '<alterable>1</alterable>'
194
            '</create_task>'
195
        )
196
197
        self.gmp.create_audit(
198
            name='foo',
199
            policy_id='c1',
200
            target_id='t1',
201
            scanner_id='s1',
202
            alterable=False,
203
        )
204
205
        self.connection.send.has_been_called_with(
206
            '<create_task>'
207
            '<name>foo</name>'
208
            '<usage_type>audit</usage_type>'
209
            '<config id="c1"/>'
210
            '<target id="t1"/>'
211
            '<scanner id="s1"/>'
212
            '<alterable>0</alterable>'
213
            '</create_task>'
214
        )
215
216
    def test_create_audit_with_hosts_ordering(self):
217
        self.gmp.create_audit(
218
            name='foo',
219
            policy_id='c1',
220
            target_id='t1',
221
            scanner_id='s1',
222
            hosts_ordering=HostsOrdering.REVERSE,
223
        )
224
225
        self.connection.send.has_been_called_with(
226
            '<create_task>'
227
            '<name>foo</name>'
228
            '<usage_type>audit</usage_type>'
229
            '<config id="c1"/>'
230
            '<target id="t1"/>'
231
            '<scanner id="s1"/>'
232
            '<hosts_ordering>reverse</hosts_ordering>'
233
            '</create_task>'
234
        )
235
236
    def test_create_audit_invalid_hosts_ordering(self):
237
        with self.assertRaises(InvalidArgumentType):
238
            self.gmp.create_audit(
239
                name='foo',
240
                policy_id='c1',
241
                target_id='t1',
242
                scanner_id='s1',
243
                hosts_ordering='foo',
244
            )
245
246
    def test_create_audit_with_schedule(self):
247
        self.gmp.create_audit(
248
            name='foo',
249
            policy_id='c1',
250
            target_id='t1',
251
            scanner_id='s1',
252
            schedule_id='s1',
253
        )
254
255
        self.connection.send.has_been_called_with(
256
            '<create_task>'
257
            '<name>foo</name>'
258
            '<usage_type>audit</usage_type>'
259
            '<config id="c1"/>'
260
            '<target id="t1"/>'
261
            '<scanner id="s1"/>'
262
            '<schedule id="s1"/>'
263
            '</create_task>'
264
        )
265
266
    def test_create_audit_with_schedule_and_schedule_periods(self):
267
        self.gmp.create_audit(
268
            name='foo',
269
            policy_id='c1',
270
            target_id='t1',
271
            scanner_id='s1',
272
            schedule_id='s1',
273
            schedule_periods=0,
274
        )
275
276
        self.connection.send.has_been_called_with(
277
            '<create_task>'
278
            '<name>foo</name>'
279
            '<usage_type>audit</usage_type>'
280
            '<config id="c1"/>'
281
            '<target id="t1"/>'
282
            '<scanner id="s1"/>'
283
            '<schedule id="s1"/>'
284
            '<schedule_periods>0</schedule_periods>'
285
            '</create_task>'
286
        )
287
288
        self.gmp.create_audit(
289
            name='foo',
290
            policy_id='c1',
291
            target_id='t1',
292
            scanner_id='s1',
293
            schedule_id='s1',
294
            schedule_periods=5,
295
        )
296
297
        self.connection.send.has_been_called_with(
298
            '<create_task>'
299
            '<name>foo</name>'
300
            '<usage_type>audit</usage_type>'
301
            '<config id="c1"/>'
302
            '<target id="t1"/>'
303
            '<scanner id="s1"/>'
304
            '<schedule id="s1"/>'
305
            '<schedule_periods>5</schedule_periods>'
306
            '</create_task>'
307
        )
308
309
    def test_create_audit_with_schedule_and_invalid_schedule_periods(self):
310
        with self.assertRaises(InvalidArgument):
311
            self.gmp.create_audit(
312
                name='foo',
313
                policy_id='c1',
314
                target_id='t1',
315
                scanner_id='s1',
316
                schedule_id='s1',
317
                schedule_periods='foo',
318
            )
319
320
        with self.assertRaises(InvalidArgument):
321
            self.gmp.create_audit(
322
                name='foo',
323
                policy_id='c1',
324
                target_id='t1',
325
                scanner_id='s1',
326
                schedule_id='s1',
327
                schedule_periods=-1,
328
            )
329
330
    def test_create_audit_with_observers(self):
331
        self.gmp.create_audit(
332
            name='foo',
333
            policy_id='c1',
334
            target_id='t1',
335
            scanner_id='s1',
336
            observers=['u1', 'u2'],
337
        )
338
339
        self.connection.send.has_been_called_with(
340
            '<create_task>'
341
            '<name>foo</name>'
342
            '<usage_type>audit</usage_type>'
343
            '<config id="c1"/>'
344
            '<target id="t1"/>'
345
            '<scanner id="s1"/>'
346
            '<observers>u1,u2</observers>'
347
            '</create_task>'
348
        )
349
350
    def test_create_audit_invalid_observers(self):
351
        with self.assertRaises(InvalidArgumentType):
352
            self.gmp.create_audit(
353
                name='foo',
354
                policy_id='c1',
355
                target_id='t1',
356
                scanner_id='s1',
357
                observers='',
358
            )
359
360
        with self.assertRaises(InvalidArgumentType):
361
            self.gmp.create_audit(
362
                name='foo',
363
                policy_id='c1',
364
                target_id='t1',
365
                scanner_id='s1',
366
                observers='foo',
367
            )
368
369
    def test_create_audit_with_preferences(self):
370
        self.gmp.create_audit(
371
            name='foo',
372
            policy_id='c1',
373
            target_id='t1',
374
            scanner_id='s1',
375
            preferences=OrderedDict([('foo', 'bar'), ('lorem', 'ipsum')]),
376
        )
377
378
        self.connection.send.has_been_called_with(
379
            '<create_task>'
380
            '<name>foo</name>'
381
            '<usage_type>audit</usage_type>'
382
            '<config id="c1"/>'
383
            '<target id="t1"/>'
384
            '<scanner id="s1"/>'
385
            '<preferences>'
386
            '<preference>'
387
            '<scanner_name>foo</scanner_name>'
388
            '<value>bar</value>'
389
            '</preference>'
390
            '<preference>'
391
            '<scanner_name>lorem</scanner_name>'
392
            '<value>ipsum</value>'
393
            '</preference>'
394
            '</preferences>'
395
            '</create_task>'
396
        )
397
398
    def test_create_audit_invalid_preferences(self):
399
        with self.assertRaises(InvalidArgumentType):
400
            self.gmp.create_audit(
401
                name='foo',
402
                policy_id='c1',
403
                target_id='t1',
404
                scanner_id='s1',
405
                preferences='',
406
            )
407
408
        with self.assertRaises(InvalidArgumentType):
409
            self.gmp.create_audit(
410
                name='foo',
411
                policy_id='c1',
412
                target_id='t1',
413
                scanner_id='s1',
414
                preferences=['foo', 'bar'],
415
            )
416
417
    def test_create_audit_don_t_allow_container_task(self):
418
        with self.assertRaises(InvalidArgument):
419
            self.gmp.create_audit(
420
                name='foo',
421
                policy_id='c1',
422
                target_id='0',
423
                scanner_id='s1',
424
                observers='',
425
            )
426
427
        # target_id=0 is considered as False
428
        with self.assertRaises(RequiredArgument):
429
            self.gmp.create_audit(
430
                name='foo',
431
                policy_id='c1',
432
                target_id=0,
433
                scanner_id='s1',
434
                observers='',
435
            )
436
437

tests/protocols/gmpv208/testcmds/test_create_audit.py 1 location

@@ 29-434 (lines=406) @@
26
from gvm.protocols.gmpv208 import HostsOrdering
27
28
29
class GmpCreateAuditCommandTestCase:
30
    def test_create_task(self):
31
        self.gmp.create_audit(
32
            name='foo', policy_id='c1', target_id='t1', scanner_id='s1'
33
        )
34
35
        self.connection.send.has_been_called_with(
36
            '<create_task>'
37
            '<name>foo</name>'
38
            '<usage_type>audit</usage_type>'
39
            '<config id="c1"/>'
40
            '<target id="t1"/>'
41
            '<scanner id="s1"/>'
42
            '</create_task>'
43
        )
44
45
    def test_create_audit_missing_name(self):
46
        with self.assertRaises(RequiredArgument):
47
            self.gmp.create_audit(
48
                name=None, policy_id='c1', target_id='t1', scanner_id='s1'
49
            )
50
51
        with self.assertRaises(RequiredArgument):
52
            self.gmp.create_audit(
53
                name='', policy_id='c1', target_id='t1', scanner_id='s1'
54
            )
55
56
    def test_create_audit_missing_policy_id(self):
57
        with self.assertRaises(RequiredArgument):
58
            self.gmp.create_audit(
59
                name='foo', policy_id=None, target_id='t1', scanner_id='s1'
60
            )
61
62
        with self.assertRaises(RequiredArgument):
63
            self.gmp.create_audit(
64
                name='foo', policy_id='', target_id='t1', scanner_id='s1'
65
            )
66
67
    def test_create_audit_missing_target_id(self):
68
        with self.assertRaises(RequiredArgument):
69
            self.gmp.create_audit(
70
                name='foo', policy_id='c1', target_id=None, scanner_id='s1'
71
            )
72
73
        with self.assertRaises(RequiredArgument):
74
            self.gmp.create_audit(
75
                name='foo', policy_id='c1', target_id='', scanner_id='s1'
76
            )
77
78
    def test_create_audit_missing_scanner_id(self):
79
        with self.assertRaises(RequiredArgument):
80
            self.gmp.create_audit(
81
                name='foo', policy_id='c1', target_id='t1', scanner_id=None
82
            )
83
84
        with self.assertRaises(RequiredArgument):
85
            self.gmp.create_audit(
86
                name='foo', policy_id='c1', target_id='t1', scanner_id=''
87
            )
88
89
    def test_create_audit_with_comment(self):
90
        self.gmp.create_audit(
91
            name='foo',
92
            policy_id='c1',
93
            target_id='t1',
94
            scanner_id='s1',
95
            comment='bar',
96
        )
97
98
        self.connection.send.has_been_called_with(
99
            '<create_task>'
100
            '<name>foo</name>'
101
            '<usage_type>audit</usage_type>'
102
            '<config id="c1"/>'
103
            '<target id="t1"/>'
104
            '<scanner id="s1"/>'
105
            '<comment>bar</comment>'
106
            '</create_task>'
107
        )
108
109
    def test_create_audit_single_alert(self):
110
        # pylint: disable=invalid-name
111
        with warnings.catch_warnings(record=True) as w:
112
            warnings.simplefilter("always")
113
114
            self.gmp.create_audit(
115
                name='foo',
116
                policy_id='c1',
117
                target_id='t1',
118
                scanner_id='s1',
119
                alert_ids='a1',  # will be removed in future
120
            )
121
122
            self.assertEqual(len(w), 1)
123
            self.assertTrue(issubclass(w[0].category, DeprecationWarning))
124
125
        self.connection.send.has_been_called_with(
126
            '<create_task>'
127
            '<name>foo</name>'
128
            '<usage_type>audit</usage_type>'
129
            '<config id="c1"/>'
130
            '<target id="t1"/>'
131
            '<scanner id="s1"/>'
132
            '<alert id="a1"/>'
133
            '</create_task>'
134
        )
135
136
        self.gmp.create_audit(
137
            name='foo',
138
            policy_id='c1',
139
            target_id='t1',
140
            scanner_id='s1',
141
            alert_ids=['a1'],
142
        )
143
144
        self.connection.send.has_been_called_with(
145
            '<create_task>'
146
            '<name>foo</name>'
147
            '<usage_type>audit</usage_type>'
148
            '<config id="c1"/>'
149
            '<target id="t1"/>'
150
            '<scanner id="s1"/>'
151
            '<alert id="a1"/>'
152
            '</create_task>'
153
        )
154
155
    def test_create_audit_multiple_alerts(self):
156
        self.gmp.create_audit(
157
            name='foo',
158
            policy_id='c1',
159
            target_id='t1',
160
            scanner_id='s1',
161
            alert_ids=['a1', 'a2', 'a3'],
162
        )
163
164
        self.connection.send.has_been_called_with(
165
            '<create_task>'
166
            '<name>foo</name>'
167
            '<usage_type>audit</usage_type>'
168
            '<config id="c1"/>'
169
            '<target id="t1"/>'
170
            '<scanner id="s1"/>'
171
            '<alert id="a1"/>'
172
            '<alert id="a2"/>'
173
            '<alert id="a3"/>'
174
            '</create_task>'
175
        )
176
177
    def test_create_audit_with_alterable(self):
178
        self.gmp.create_audit(
179
            name='foo',
180
            policy_id='c1',
181
            target_id='t1',
182
            scanner_id='s1',
183
            alterable=True,
184
        )
185
186
        self.connection.send.has_been_called_with(
187
            '<create_task>'
188
            '<name>foo</name>'
189
            '<usage_type>audit</usage_type>'
190
            '<config id="c1"/>'
191
            '<target id="t1"/>'
192
            '<scanner id="s1"/>'
193
            '<alterable>1</alterable>'
194
            '</create_task>'
195
        )
196
197
        self.gmp.create_audit(
198
            name='foo',
199
            policy_id='c1',
200
            target_id='t1',
201
            scanner_id='s1',
202
            alterable=False,
203
        )
204
205
        self.connection.send.has_been_called_with(
206
            '<create_task>'
207
            '<name>foo</name>'
208
            '<usage_type>audit</usage_type>'
209
            '<config id="c1"/>'
210
            '<target id="t1"/>'
211
            '<scanner id="s1"/>'
212
            '<alterable>0</alterable>'
213
            '</create_task>'
214
        )
215
216
    def test_create_audit_with_hosts_ordering(self):
217
        self.gmp.create_audit(
218
            name='foo',
219
            policy_id='c1',
220
            target_id='t1',
221
            scanner_id='s1',
222
            hosts_ordering=HostsOrdering.REVERSE,
223
        )
224
225
        self.connection.send.has_been_called_with(
226
            '<create_task>'
227
            '<name>foo</name>'
228
            '<usage_type>audit</usage_type>'
229
            '<config id="c1"/>'
230
            '<target id="t1"/>'
231
            '<scanner id="s1"/>'
232
            '<hosts_ordering>reverse</hosts_ordering>'
233
            '</create_task>'
234
        )
235
236
    def test_create_audit_invalid_hosts_ordering(self):
237
        with self.assertRaises(InvalidArgumentType):
238
            self.gmp.create_audit(
239
                name='foo',
240
                policy_id='c1',
241
                target_id='t1',
242
                scanner_id='s1',
243
                hosts_ordering='foo',
244
            )
245
246
    def test_create_audit_with_schedule(self):
247
        self.gmp.create_audit(
248
            name='foo',
249
            policy_id='c1',
250
            target_id='t1',
251
            scanner_id='s1',
252
            schedule_id='s1',
253
        )
254
255
        self.connection.send.has_been_called_with(
256
            '<create_task>'
257
            '<name>foo</name>'
258
            '<usage_type>audit</usage_type>'
259
            '<config id="c1"/>'
260
            '<target id="t1"/>'
261
            '<scanner id="s1"/>'
262
            '<schedule id="s1"/>'
263
            '</create_task>'
264
        )
265
266
    def test_create_audit_with_schedule_and_schedule_periods(self):
267
        self.gmp.create_audit(
268
            name='foo',
269
            policy_id='c1',
270
            target_id='t1',
271
            scanner_id='s1',
272
            schedule_id='s1',
273
            schedule_periods=0,
274
        )
275
276
        self.connection.send.has_been_called_with(
277
            '<create_task>'
278
            '<name>foo</name>'
279
            '<usage_type>audit</usage_type>'
280
            '<config id="c1"/>'
281
            '<target id="t1"/>'
282
            '<scanner id="s1"/>'
283
            '<schedule id="s1"/>'
284
            '<schedule_periods>0</schedule_periods>'
285
            '</create_task>'
286
        )
287
288
        self.gmp.create_audit(
289
            name='foo',
290
            policy_id='c1',
291
            target_id='t1',
292
            scanner_id='s1',
293
            schedule_id='s1',
294
            schedule_periods=5,
295
        )
296
297
        self.connection.send.has_been_called_with(
298
            '<create_task>'
299
            '<name>foo</name>'
300
            '<usage_type>audit</usage_type>'
301
            '<config id="c1"/>'
302
            '<target id="t1"/>'
303
            '<scanner id="s1"/>'
304
            '<schedule id="s1"/>'
305
            '<schedule_periods>5</schedule_periods>'
306
            '</create_task>'
307
        )
308
309
    def test_create_audit_with_schedule_and_invalid_schedule_periods(self):
310
        with self.assertRaises(InvalidArgument):
311
            self.gmp.create_audit(
312
                name='foo',
313
                policy_id='c1',
314
                target_id='t1',
315
                scanner_id='s1',
316
                schedule_id='s1',
317
                schedule_periods='foo',
318
            )
319
320
        with self.assertRaises(InvalidArgument):
321
            self.gmp.create_audit(
322
                name='foo',
323
                policy_id='c1',
324
                target_id='t1',
325
                scanner_id='s1',
326
                schedule_id='s1',
327
                schedule_periods=-1,
328
            )
329
330
    def test_create_audit_with_observers(self):
331
        self.gmp.create_audit(
332
            name='foo',
333
            policy_id='c1',
334
            target_id='t1',
335
            scanner_id='s1',
336
            observers=['u1', 'u2'],
337
        )
338
339
        self.connection.send.has_been_called_with(
340
            '<create_task>'
341
            '<name>foo</name>'
342
            '<usage_type>audit</usage_type>'
343
            '<config id="c1"/>'
344
            '<target id="t1"/>'
345
            '<scanner id="s1"/>'
346
            '<observers>u1,u2</observers>'
347
            '</create_task>'
348
        )
349
350
    def test_create_audit_invalid_observers(self):
351
        with self.assertRaises(InvalidArgumentType):
352
            self.gmp.create_audit(
353
                name='foo',
354
                policy_id='c1',
355
                target_id='t1',
356
                scanner_id='s1',
357
                observers='',
358
            )
359
360
        with self.assertRaises(InvalidArgumentType):
361
            self.gmp.create_audit(
362
                name='foo',
363
                policy_id='c1',
364
                target_id='t1',
365
                scanner_id='s1',
366
                observers='foo',
367
            )
368
369
    def test_create_audit_with_preferences(self):
370
        self.gmp.create_audit(
371
            name='foo',
372
            policy_id='c1',
373
            target_id='t1',
374
            scanner_id='s1',
375
            preferences=OrderedDict([('foo', 'bar'), ('lorem', 'ipsum')]),
376
        )
377
378
        self.connection.send.has_been_called_with(
379
            '<create_task>'
380
            '<name>foo</name>'
381
            '<usage_type>audit</usage_type>'
382
            '<config id="c1"/>'
383
            '<target id="t1"/>'
384
            '<scanner id="s1"/>'
385
            '<preferences>'
386
            '<preference>'
387
            '<scanner_name>foo</scanner_name>'
388
            '<value>bar</value>'
389
            '</preference>'
390
            '<preference>'
391
            '<scanner_name>lorem</scanner_name>'
392
            '<value>ipsum</value>'
393
            '</preference>'
394
            '</preferences>'
395
            '</create_task>'
396
        )
397
398
    def test_create_audit_invalid_preferences(self):
399
        with self.assertRaises(InvalidArgumentType):
400
            self.gmp.create_audit(
401
                name='foo',
402
                policy_id='c1',
403
                target_id='t1',
404
                scanner_id='s1',
405
                preferences='',
406
            )
407
408
        with self.assertRaises(InvalidArgumentType):
409
            self.gmp.create_audit(
410
                name='foo',
411
                policy_id='c1',
412
                target_id='t1',
413
                scanner_id='s1',
414
                preferences=['foo', 'bar'],
415
            )
416
417
    def test_create_audit_don_t_allow_container_task(self):
418
        with self.assertRaises(InvalidArgument):
419
            self.gmp.create_audit(
420
                name='foo',
421
                policy_id='c1',
422
                target_id='0',
423
                scanner_id='s1',
424
                observers='',
425
            )
426
427
        # target_id=0 is considered as False
428
        with self.assertRaises(RequiredArgument):
429
            self.gmp.create_audit(
430
                name='foo',
431
                policy_id='c1',
432
                target_id=0,
433
                scanner_id='s1',
434
                observers='',
435
            )
436
437