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_auth.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_auth.py')
-rw-r--r-- | tests/hlapi/test_auth.py | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/tests/hlapi/test_auth.py b/tests/hlapi/test_auth.py new file mode 100644 index 00000000..ad5323fd --- /dev/null +++ b/tests/hlapi/test_auth.py @@ -0,0 +1,143 @@ +# +# 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: + import unittest2 as unittest + +except ImportError: + import unittest + +from tests.base import BaseTestCase + +from pysnmp import hlapi +from pysnmp import debug +from pysnmp import error + + +class ProtocolConstantsTestCase(BaseTestCase): + def testEnsureProtocols(self): + self.assertTrue(hasattr(hlapi, 'usm3DESEDEPrivProtocol')) + self.assertTrue(hasattr(hlapi, 'usm3DESEDEPrivProtocol')) + self.assertTrue(hasattr(hlapi, 'usmAesCfb128Protocol')) + self.assertTrue(hasattr(hlapi, 'usmAesCfb192Protocol')) + self.assertTrue(hasattr(hlapi, 'usmAesCfb256Protocol')) + self.assertTrue(hasattr(hlapi, 'usmAesBlumenthalCfb192Protocol')) + self.assertTrue(hasattr(hlapi, 'usmAesBlumenthalCfb256Protocol')) + self.assertTrue(hasattr(hlapi, 'usmDESPrivProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMACMD5AuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMACSHAAuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMAC128SHA224AuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMAC192SHA256AuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMAC256SHA384AuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmHMAC384SHA512AuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmNoAuthProtocol')) + self.assertTrue(hasattr(hlapi, 'usmNoPrivProtocol')) + + +class CommunityDataTestCase(BaseTestCase): + def testVersionOne(self): + auth = hlapi.CommunityData( + 'public', mpModel=0, contextEngineId='0123456789', contextName='abc', tag='x' + ) + self.assertTrue(auth.communityIndex) + self.assertEqual(auth.communityName, 'public') + self.assertEqual(auth.contextEngineId, '0123456789') + self.assertEqual(auth.contextName, 'abc') + self.assertEqual(auth.mpModel, 0) + self.assertEqual(auth.securityLevel, 'noAuthNoPriv') + self.assertEqual(auth.securityModel, 1) + self.assertTrue(auth.securityName) + self.assertEqual(auth.tag, 'x') + + def testVersionTwoC(self): + auth = hlapi.CommunityData( + 'public', contextEngineId='0123456789', contextName='abc', tag='x' + ) + self.assertTrue(auth.communityIndex) + self.assertEqual(auth.communityName, 'public') + self.assertEqual(auth.contextEngineId, '0123456789') + self.assertEqual(auth.contextName, 'abc') + self.assertEqual(auth.mpModel, 1) + self.assertEqual(auth.securityLevel, 'noAuthNoPriv') + self.assertEqual(auth.securityModel, 2) + self.assertTrue(auth.securityName) + self.assertEqual(auth.tag, 'x') + + def testClone(self): + auth = hlapi.CommunityData('public').clone('private') + self.assertTrue(auth.communityIndex) + self.assertEqual(auth.communityName, 'private') + self.assertEqual(auth.contextEngineId, None) + self.assertEqual(auth.contextName, hlapi.OctetString('')) + self.assertEqual(auth.mpModel, 1) + self.assertEqual(auth.securityLevel, 'noAuthNoPriv') + self.assertEqual(auth.securityModel, 2) + self.assertTrue(auth.securityName) + self.assertEqual(auth.tag, hlapi.OctetString('')) + + +class UsmUserDataTestCase(BaseTestCase): + def testAuthPrivDefaults(self): + auth = hlapi.UsmUserData('testuser', 'authkey1', 'privkey1') + self.assertEqual(auth.authKey, 'authkey1') + self.assertEqual(auth.authProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 1, 2)) + self.assertEqual(auth.mpModel, 3) + self.assertEqual(auth.privKey, 'privkey1') + self.assertEqual(auth.privProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 2, 2)) + self.assertFalse(auth.securityEngineId) + self.assertEqual(auth.securityLevel, 'authPriv') + self.assertEqual(auth.securityModel, 3) + self.assertEqual(auth.securityName, 'testuser') + self.assertEqual(auth.userName, 'testuser') + + def testAuthNoPrivDefaults(self): + auth = hlapi.UsmUserData('testuser', 'authkey1') + self.assertEqual(auth.authKey, 'authkey1') + self.assertEqual(auth.authProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 1, 2)) + self.assertEqual(auth.mpModel, 3) + self.assertFalse(auth.privKey) + self.assertEqual(auth.privProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 2, 1)) + self.assertFalse(auth.securityEngineId) + self.assertEqual(auth.securityLevel, 'authNoPriv') + self.assertEqual(auth.securityModel, 3) + self.assertEqual(auth.securityName, 'testuser') + self.assertEqual(auth.userName, 'testuser') + + def testNoAuthNoPrivDefaults(self): + auth = hlapi.UsmUserData('testuser') + self.assertFalse(auth.authKey) + self.assertEqual(auth.authProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 1, 1)) + self.assertEqual(auth.mpModel, 3) + self.assertFalse(auth.privKey) + self.assertEqual(auth.privProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 2, 1)) + self.assertFalse(auth.securityEngineId) + self.assertEqual(auth.securityLevel, 'noAuthNoPriv') + self.assertEqual(auth.securityModel, 3) + self.assertEqual(auth.securityName, 'testuser') + self.assertEqual(auth.userName, 'testuser') + + def testAuthPriv(self): + auth = hlapi.UsmUserData('testuser', 'authkey1', 'privkey1', + authProtocol=hlapi.usmHMACSHAAuthProtocol, + privProtocol=hlapi.usmAesCfb256Protocol) + self.assertEqual(auth.authKey, 'authkey1') + self.assertEqual(auth.authProtocol, (1, 3, 6, 1, 6, 3, 10, 1, 1, 3)) + self.assertEqual(auth.mpModel, 3) + self.assertEqual(auth.privKey, 'privkey1') + self.assertEqual(auth.privProtocol, (1, 3, 6, 1, 4, 1, 9, 12, 6, 1, 102)) + self.assertFalse(auth.securityEngineId) + self.assertEqual(auth.securityLevel, 'authPriv') + self.assertEqual(auth.securityModel, 3) + self.assertEqual(auth.securityName, 'testuser') + self.assertEqual(auth.userName, 'testuser') + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) |