diff options
author | Ilya Etingof <etingof@gmail.com> | 2018-07-05 10:33:05 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2018-07-07 15:38:10 +0200 |
commit | 7afa36942e2dfc7557c1504dc1de5e7d42529dec (patch) | |
tree | f397c690ddff098a84dc0228e45eb1b4bcbf0860 /tests/hlapi/test_lcd.py | |
parent | 212e1b54c3d356e6da8a470187fa185be8aa172e (diff) | |
download | pysnmp-git-add-hlapi-unit-tests.tar.gz |
WIP: Add unit tests covering hlapiadd-hlapi-unit-tests
Diffstat (limited to 'tests/hlapi/test_lcd.py')
-rw-r--r-- | tests/hlapi/test_lcd.py | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/hlapi/test_lcd.py b/tests/hlapi/test_lcd.py new file mode 100644 index 00000000..ae3007e6 --- /dev/null +++ b/tests/hlapi/test_lcd.py @@ -0,0 +1,135 @@ +# +# This file is part of pysnmp software. +# +# Copyright (c) 2005-2018, Ilya Etingof <etingof@gmail.com> +# License: http://snmplabs.com/pysnmp/license.html +# +import sys + +try: + from unittest import mock + +except ImportError: + try: + import mock + + except ImportError: + mock = None + +try: + import unittest2 as unittest + +except ImportError: + import unittest + +from tests.base import BaseTestCase + +from pysnmp import hlapi +from pysnmp.hlapi import lcd +from pysnmp import debug +from pysnmp import error + +if mock: + + @mock.patch('pysnmp.entity.config.addV1System', autospec=True) + @mock.patch('pysnmp.entity.config.addV3User', autospec=True) + @mock.patch('pysnmp.entity.config.addTargetParams', autospec=True) + @mock.patch('pysnmp.entity.config.addTransport', autospec=True) + @mock.patch('pysnmp.entity.config.addTargetAddr', autospec=True) + class ConfigureCommandGeneratorTestCase(BaseTestCase): + def setUp(self): + self.snmpEngine = hlapi.SnmpEngine() + self.communityData = hlapi.CommunityData('public') + self.usmUserData = hlapi.UsmUserData('testuser', 'authkey1', 'privkey1') + self.transportTarget = hlapi.UdpTransportTarget(('127.0.0.1', 161)) + + def testCommunityData(self, mock_address, mock_transport, mock_target, + mock_v3user, mock_v1system): + + cfg = lcd.CommandGeneratorLcdConfigurator() + addrName, paramsName = cfg.configure(self.snmpEngine, self.communityData, + self.transportTarget) + + self.assertTrue(addrName) + self.assertTrue(paramsName) + mock_v1system.assert_called_once_with( + self.snmpEngine, + mock.ANY, + 'public', + None, + mock.ANY, + mock.ANY, + mock.ANY + ) + mock_v3user.assert_not_called() + mock_target.assert_called_once_with( + self.snmpEngine, + mock.ANY, + mock.ANY, + 'noAuthNoPriv', + 1 + ) + mock_transport.assert_called_once_with( + self.snmpEngine, + (1, 3, 6, 1, 6, 1, 1), + mock.ANY + ) + mock_address.assert_called_once_with( + self.snmpEngine, + mock.ANY, + (1, 3, 6, 1, 6, 1, 1), ('127.0.0.1', 161), + mock.ANY, + 100, 5, + mock.ANY + ) + + def testUsmUserData(self, mock_address, mock_transport, mock_target, + mock_v3user, mock_v1system): + + cfg = lcd.CommandGeneratorLcdConfigurator() + addrName, paramsName = cfg.configure(self.snmpEngine, self.usmUserData, + self.transportTarget) + + self.assertTrue(addrName) + self.assertTrue(paramsName) + mock_v1system.assert_not_called() + mock_v3user.assert_called_once_with( + self.snmpEngine, + 'testuser', + (1, 3, 6, 1, 6, 3, 10, 1, 1, 2), + 'authkey1', + (1, 3, 6, 1, 6, 3, 10, 1, 2, 2), + 'privkey1', + None, + securityName='testuser' + ) + mock_target.assert_called_once_with( + self.snmpEngine, + mock.ANY, + 'testuser', + 'authPriv', + 3 + ) + mock_transport.assert_called_once_with( + self.snmpEngine, + (1, 3, 6, 1, 6, 1, 1), + mock.ANY + ) + mock_address.assert_called_once_with( + self.snmpEngine, + mock.ANY, + (1, 3, 6, 1, 6, 1, 1), ('127.0.0.1', 161), + mock.ANY, + 100, 5, + mock.ANY + ) + + + + + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) |