Passed
Pull Request — master (#344)
by Jaspar
01:38
created

StartAlertScanTestCase.test_get_alert()   A

Complexity

Conditions 1

Size

Total Lines 24
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 18
nop 2
dl 0
loc 24
rs 9.5
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2020 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
20
import unittest
21
from unittest.mock import patch
22
from pathlib import Path
23
from . import GmpMockFactory, load_script
24
25
CWD = Path(__file__).absolute().parent
26
27
28
class StartAlertScanTestCase(unittest.TestCase):
29
    def setUp(self):
30
        self.start_alert_scan = load_script(
31
            (CWD.parent.parent / 'scripts'), 'start-alert-scan'
32
        )
33
34
    @patch('gvm.protocols.latest.Gmp', new_callable=GmpMockFactory)
35
    def test_get_config(self, mock_gmp: GmpMockFactory):
36
        configs_file = CWD / 'get_configs.xml'
37
        configs = configs_file.read_text()
38
        mock_gmp.mock_response('get_configs', configs)
39
40
        # Full and Fast
41
        config_id = self.start_alert_scan.get_config(
42
            gmp=mock_gmp.gmp_protocol, config=0
43
        )
44
        self.assertEqual(config_id, 'daba56c8-73ec-11df-a475-002264764cea')
45
46
        # Full and Fast ultimate
47
        config_id = self.start_alert_scan.get_config(
48
            gmp=mock_gmp.gmp_protocol, config=1
49
        )
50
        self.assertEqual(config_id, '698f691e-7489-11df-9d8c-002264764cea')
51
52
        # Full and Fast deep
53
        config_id = self.start_alert_scan.get_config(
54
            gmp=mock_gmp.gmp_protocol, config=2
55
        )
56
        self.assertEqual(config_id, '708f25c4-7489-11df-8094-002264764cea')
57
58
        # Full and Fast deep ultimate
59
        config_id = self.start_alert_scan.get_config(
60
            gmp=mock_gmp.gmp_protocol, config=3
61
        )
62
        self.assertEqual(config_id, '74db13d6-7489-11df-91b9-002264764cea')
63
64
        # System Discovery
65
        config_id = self.start_alert_scan.get_config(
66
            gmp=mock_gmp.gmp_protocol, config=4
67
        )
68
        self.assertEqual(config_id, 'bbca7412-a950-11e3-9109-406186ea4fc5')
69
70
        with self.assertRaises(ValueError):
71
            config_id = self.start_alert_scan.get_config(
72
                gmp=mock_gmp.gmp_protocol, config=-1
73
            )
74
75
    @patch('gvm.protocols.latest.Gmp', new_callable=GmpMockFactory)
76
    def test_get_alert(self, mock_gmp: GmpMockFactory):
77
        sender_email = "[email protected]"
78
        recipient_email = "[email protected]"
79
        alert_name = "test_alert"
80
        alert_id = '3eefd4b9-59ec-48d6-b84d-f6a73bdb909f'
81
82
        alerts_file = CWD / 'get_alerts.xml'
83
        alerts = alerts_file.read_text()
84
        mock_gmp.mock_response('get_alerts', alerts)
85
        mock_gmp.mock_response(
86
            'create_alert',
87
            '<create_alert_response status="201" status_text='
88
            f'"OK, resource created" id="{alert_id}"/>',
89
        )
90
91
        returned_id = self.start_alert_scan.get_alert(
92
            gmp=mock_gmp.gmp_protocol,
93
            alert_name=alert_name,
94
            recipient_email=recipient_email,
95
            sender_email=sender_email,
96
        )
97
98
        self.assertEqual(alert_id, returned_id)
99