Completed
Push — master ( b66c89...a2ff66 )
by
unknown
26s queued 14s
created

GmpModifyTestCase.test_modify_credential_with_login()   A

Complexity

Conditions 1

Size

Total Lines 5
Code Lines 4

Duplication

Lines 5
Ratio 100 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 1
dl 5
loc 5
rs 10
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
import unittest
20
21
from gvm.errors import RequiredArgument, InvalidArgumentType
22
from gvm.protocols.gmpv9 import SnmpAuthAlgorithm, SnmpPrivacyAlgorithm
23
24
from . import Gmpv9TestCase
25
26
27 View Code Duplication
class GmpModifyTestCase(Gmpv9TestCase):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
28
    def test_modify_credential(self):
29
        self.gmp.modify_credential(credential_id='c1')
30
31
        self.connection.send.has_been_called_with(
32
            '<modify_credential credential_id="c1"/>'
33
        )
34
35
    def test_modify_credential_missing_credential_id(self):
36
        with self.assertRaises(RequiredArgument):
37
            self.gmp.modify_credential(None)
38
39
        with self.assertRaises(RequiredArgument):
40
            self.gmp.modify_credential('')
41
42
        with self.assertRaises(RequiredArgument):
43
            self.gmp.modify_credential(credential_id='')
44
45
    def test_modify_credential_with_name(self):
46
        self.gmp.modify_credential(credential_id='c1', name='foo')
47
48
        self.connection.send.has_been_called_with(
49
            '<modify_credential credential_id="c1">'
50
            '<name>foo</name>'
51
            '</modify_credential>'
52
        )
53
54
    def test_modify_credential_with_comment(self):
55
        self.gmp.modify_credential(credential_id='c1', comment='foo')
56
57
        self.connection.send.has_been_called_with(
58
            '<modify_credential credential_id="c1">'
59
            '<comment>foo</comment>'
60
            '</modify_credential>'
61
        )
62
63
    def test_modify_credential_with_certificate(self):
64
        self.gmp.modify_credential(credential_id='c1', certificate='abcdef')
65
66
        self.connection.send.has_been_called_with(
67
            '<modify_credential credential_id="c1">'
68
            '<certificate>abcdef</certificate>'
69
            '</modify_credential>'
70
        )
71
72
    def test_modify_credential_with_private_key_and_key_phrase(self):
73
        self.gmp.modify_credential(
74
            credential_id='c1', private_key='123456', key_phrase='foo'
75
        )
76
77
        self.connection.send.has_been_called_with(
78
            '<modify_credential credential_id="c1">'
79
            '<key>'
80
            '<phrase>foo</phrase>'
81
            '<private>123456</private>'
82
            '</key>'
83
            '</modify_credential>'
84
        )
85
86
    def test_modify_credential_missing_private_key(self):
87
        with self.assertRaises(RequiredArgument):
88
            self.gmp.modify_credential(credential_id='c1', key_phrase='foo')
89
90
    def test_modify_credential_missing_key_phrase(self):
91
        with self.assertRaises(RequiredArgument):
92
            self.gmp.modify_credential(credential_id='c1', private_key='123456')
93
94
    def test_modify_credential_with_allow_insecure(self):
95
        self.gmp.modify_credential(credential_id='c1', allow_insecure=True)
96
97
        self.connection.send.has_been_called_with(
98
            '<modify_credential credential_id="c1">'
99
            '<allow_insecure>1</allow_insecure>'
100
            '</modify_credential>'
101
        )
102
103
        self.gmp.modify_credential(credential_id='c1', allow_insecure=False)
104
105
        self.connection.send.has_been_called_with(
106
            '<modify_credential credential_id="c1">'
107
            '<allow_insecure>0</allow_insecure>'
108
            '</modify_credential>'
109
        )
110
111
    def test_modify_credential_with_login(self):
112
        self.gmp.modify_credential(credential_id='c1', login='foo')
113
114
        self.connection.send.has_been_called_with(
115
            '<modify_credential credential_id="c1">'
116
            '<login>foo</login>'
117
            '</modify_credential>'
118
        )
119
120
    def test_modify_credential_with_password(self):
121
        self.gmp.modify_credential(credential_id='c1', password='foo')
122
123
        self.connection.send.has_been_called_with(
124
            '<modify_credential credential_id="c1">'
125
            '<password>foo</password>'
126
            '</modify_credential>'
127
        )
128
129
    def test_modify_credential_with_auth_algorithm(self):
130
        self.gmp.modify_credential(
131
            credential_id='c1', auth_algorithm=SnmpAuthAlgorithm.MD5
132
        )
133
134
        self.connection.send.has_been_called_with(
135
            '<modify_credential credential_id="c1">'
136
            '<auth_algorithm>md5</auth_algorithm>'
137
            '</modify_credential>'
138
        )
139
140
        self.gmp.modify_credential(
141
            credential_id='c1', auth_algorithm=SnmpAuthAlgorithm.SHA1
142
        )
143
144
        self.connection.send.has_been_called_with(
145
            '<modify_credential credential_id="c1">'
146
            '<auth_algorithm>sha1</auth_algorithm>'
147
            '</modify_credential>'
148
        )
149
150
    def test_modify_credential_invalid_auth_algorithm(self):
151
        with self.assertRaises(InvalidArgumentType):
152
            self.gmp.modify_credential(credential_id='c1', auth_algorithm='foo')
153
154
    def test_modify_credential_with_community(self):
155
        self.gmp.modify_credential(credential_id='c1', community='foo')
156
157
        self.connection.send.has_been_called_with(
158
            '<modify_credential credential_id="c1">'
159
            '<community>foo</community>'
160
            '</modify_credential>'
161
        )
162
163
    def test_modify_credential_with_privacy_algorithm(self):
164
        self.gmp.modify_credential(
165
            credential_id='c1', privacy_algorithm=SnmpPrivacyAlgorithm.AES
166
        )
167
168
        self.connection.send.has_been_called_with(
169
            '<modify_credential credential_id="c1">'
170
            '<privacy>'
171
            '<algorithm>aes</algorithm>'
172
            '</privacy>'
173
            '</modify_credential>'
174
        )
175
176
        self.gmp.modify_credential(
177
            credential_id='c1', privacy_algorithm=SnmpPrivacyAlgorithm.DES
178
        )
179
180
        self.connection.send.has_been_called_with(
181
            '<modify_credential credential_id="c1">'
182
            '<privacy>'
183
            '<algorithm>des</algorithm>'
184
            '</privacy>'
185
            '</modify_credential>'
186
        )
187
188
    def test_modify_credential_invalid_privacy_algorithm(self):
189
        with self.assertRaises(InvalidArgumentType):
190
            self.gmp.modify_credential(credential_id='c1', privacy_algorithm='')
191
192
        with self.assertRaises(InvalidArgumentType):
193
            self.gmp.modify_credential(
194
                credential_id='c1', privacy_algorithm='foo'
195
            )
196
197
    def test_modify_credential_with_privacy_password(self):
198
        self.gmp.modify_credential(credential_id='c1', privacy_password='foo')
199
200
        self.connection.send.has_been_called_with(
201
            '<modify_credential credential_id="c1">'
202
            '<privacy>'
203
            '<password>foo</password>'
204
            '</privacy>'
205
            '</modify_credential>'
206
        )
207
208
    def test_modify_credential_with_public_key(self):
209
        self.gmp.modify_credential(credential_id='c1', public_key='foo')
210
211
        self.connection.send.has_been_called_with(
212
            '<modify_credential credential_id="c1">'
213
            '<key>'
214
            '<public>foo</public>'
215
            '</key>'
216
            '</modify_credential>'
217
        )
218
219
220
if __name__ == '__main__':
221
    unittest.main()
222