Skip to content

Commit 7d4a1ef

Browse files
authored
Update test_disable_snmp_flow.py
1 parent d05cdf1 commit 7d4a1ef

File tree

1 file changed

+63
-8
lines changed

1 file changed

+63
-8
lines changed
Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,71 @@
11
from unittest import TestCase
22

3-
from mock import MagicMock
3+
from cloudshell.snmp.snmp_parameters import SNMPV3Parameters, SNMPV2ReadParameters, SNMPV2WriteParameters
4+
from mock import MagicMock, patch
45
from cloudshell.networking.cisco.flows.cisco_disable_snmp_flow import CiscoDisableSnmpFlow
6+
from cloudshell.networking.cisco.flows.cisco_enable_snmp_flow import CiscoEnableSnmpFlow
57

68

79
class TestCiscoDisableSNMPFlow(TestCase):
8-
def _get_handler(self, output):
10+
IP = "localhost"
11+
SNMP_WRITE_COMMUNITY = "private"
12+
SNMP_READ_COMMUNITY = "public"
13+
SNMP_USER = "admin"
14+
SNMP_PASSWORD = "P@ssw0rD"
15+
SNMP_PRIVATE_KEY = "PrivKey"
16+
17+
def _get_handler(self, remove_group=True):
18+
self.snmp_v2_write_parameters = SNMPV2WriteParameters(ip=self.IP,
19+
snmp_write_community=self.SNMP_WRITE_COMMUNITY)
20+
self.snmp_v2_read_parameters = SNMPV2ReadParameters(ip=self.IP, snmp_read_community=self.SNMP_READ_COMMUNITY)
21+
self.snmp_v3_parameters = SNMPV3Parameters(ip=self.IP, snmp_user=self.SNMP_USER,
22+
snmp_password=self.SNMP_PASSWORD,
23+
snmp_private_key=self.SNMP_PRIVATE_KEY)
924
cli = MagicMock()
10-
self.session = MagicMock()
11-
self.session.send_command.return_value = output
12-
cliservice = MagicMock()
13-
cliservice.__enter__.return_value = self.session
14-
cli.get_cli_service.return_value = cliservice
1525
logger = MagicMock()
16-
return CiscoDisableSnmpFlow(cli_handler=cli, logger=logger)
26+
return CiscoDisableSnmpFlow(cli_handler=cli, logger=logger, remove_group=remove_group)
27+
28+
@patch("cloudshell.networking.cisco.flows.cisco_disable_snmp_flow.EnableDisableSnmpActions")
29+
def test_disable_snmp_v3_no_group(self, disable_actions_mock):
30+
disable_actions_mock.return_value.get_current_snmp_user.side_effect = [self.SNMP_USER, ""]
31+
32+
disable_flow = self._get_handler(remove_group=False)
33+
self.snmp_v3_parameters = SNMPV3Parameters(ip=self.IP, snmp_user=self.SNMP_USER,
34+
snmp_password=self.SNMP_PASSWORD,
35+
snmp_private_key=self.SNMP_PRIVATE_KEY,
36+
private_key_protocol="DES")
37+
disable_flow.execute_flow(self.snmp_v3_parameters)
38+
disable_actions_mock.return_value.get_current_snmp_user.assert_called()
39+
disable_actions_mock.return_value.remove_snmp_user.assert_called_once_with(self.snmp_v3_parameters.snmp_user)
40+
41+
@patch("cloudshell.networking.cisco.flows.cisco_disable_snmp_flow.EnableDisableSnmpActions")
42+
def test_disable_snmp_v3_with_group(self, disable_actions_mock):
43+
disable_actions_mock.return_value.get_current_snmp_user.side_effect = [self.SNMP_USER, ""]
44+
disable_actions_mock.return_value.get_current_snmp_config.return_value = "snmp-server view {}".format(
45+
CiscoEnableSnmpFlow.DEFAULT_SNMP_VIEW)
46+
47+
disable_flow = self._get_handler()
48+
self.snmp_v3_parameters = SNMPV3Parameters(ip=self.IP, snmp_user=self.SNMP_USER,
49+
snmp_password=self.SNMP_PASSWORD,
50+
snmp_private_key=self.SNMP_PRIVATE_KEY,
51+
private_key_protocol="DES")
52+
disable_flow.execute_flow(self.snmp_v3_parameters)
53+
disable_actions_mock.return_value.get_current_snmp_user.assert_called()
54+
disable_actions_mock.return_value.remove_snmp_user.assert_called_once_with(self.snmp_v3_parameters.snmp_user,
55+
CiscoEnableSnmpFlow.DEFAULT_SNMP_GROUP)
56+
disable_actions_mock.return_value.get_current_snmp_config.assert_called_once()
57+
disable_actions_mock.return_value.remove_snmp_group.assert_called_once_with(
58+
CiscoEnableSnmpFlow.DEFAULT_SNMP_GROUP)
59+
disable_actions_mock.return_value.remove_snmp_view.assert_called_once_with(
60+
CiscoEnableSnmpFlow.DEFAULT_SNMP_VIEW)
61+
62+
@patch("cloudshell.networking.cisco.flows.cisco_disable_snmp_flow.EnableDisableSnmpActions")
63+
def test_disable_snmp_v2_read(self, disable_actions_mock):
64+
disable_actions_mock.return_value.get_current_snmp_config.return_value = ""
65+
66+
disable_flow = self._get_handler()
67+
68+
disable_flow.execute_flow(self.snmp_v2_read_parameters)
69+
disable_actions_mock.return_value.get_current_snmp_config.assert_called_once()
70+
disable_actions_mock.return_value.disable_snmp.assert_called_once_with(
71+
self.snmp_v2_read_parameters.snmp_community)

0 commit comments

Comments
 (0)