diff --git a/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_aes128.py b/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_aes128.py index 3e8dd20c4..94e3dee94 100644 --- a/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_aes128.py +++ b/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_aes128.py @@ -1,98 +1,119 @@ import pytest from pysnmp.hlapi.asyncio import * from pysnmp.proto.errind import DecryptionError, RequestTimedOut, UnknownUserName +from tests.agent_context import AGENT_PORT, AgentContextManager + @pytest.mark.asyncio async def test_usm_sha_aes128(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-aes", - "authkey1", - "privkey1", - authProtocol=usmHMACSHAAuthProtocol, - privProtocol=usmAesCfb128Protocol, - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) - - assert errorIndication is None - assert errorStatus == 0 - assert len(varBinds) == 1 - assert varBinds[0][0].prettyPrint() == "SNMPv2-MIB::sysDescr.0" - isinstance(varBinds[0][1], OctetString) - - snmpEngine.transportDispatcher.closeDispatcher() + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-aes", + "authkey1", + "privkey1", + authProtocol=usmHMACSHAAuthProtocol, + privProtocol=usmAesCfb128Protocol, + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget(("localhost", AGENT_PORT), retries=0), + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert errorIndication is None + assert errorStatus == 0 + assert len(varBinds) == 1 + assert varBinds[0][0].prettyPrint() == "SNMPv2-MIB::sysDescr.0" + isinstance(varBinds[0][1], OctetString) + + snmpEngine.transportDispatcher.closeDispatcher() + @pytest.mark.asyncio async def test_usm_sha_aes128_wrong_auth(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-aes", - "authkey1", - "privkey1", - authProtocol=usmHMACMD5AuthProtocol, # wrongly use usmHMACMD5AuthProtocol - privProtocol=usmAesCfb128Protocol - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) - - assert isinstance(errorIndication, DecryptionError) - assert str(errorIndication) == 'Ciphering services not available or ciphertext is broken' - - snmpEngine.transportDispatcher.closeDispatcher() + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-aes", + "authkey1", + "privkey1", + authProtocol=usmHMACMD5AuthProtocol, # wrongly use usmHMACMD5AuthProtocol + privProtocol=usmAesCfb128Protocol, + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget( + ("demo.pysnmp.com", 161), retries=0 + ), # TODO: change to localhost + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert isinstance(errorIndication, DecryptionError) + assert ( + str(errorIndication) + == "Ciphering services not available or ciphertext is broken" + ) + + snmpEngine.transportDispatcher.closeDispatcher() + @pytest.mark.asyncio async def test_usm_sha_aes128_wrong_priv(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-aes", - "authkey1", - "privkey1", - authProtocol=usmHMACSHAAuthProtocol, - privProtocol=usmDESPrivProtocol, # wrongly use usmDESPrivProtocol - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) - - assert isinstance(errorIndication, DecryptionError) - assert str(errorIndication) == 'Ciphering services not available or ciphertext is broken' - - snmpEngine.transportDispatcher.closeDispatcher() + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-aes", + "authkey1", + "privkey1", + authProtocol=usmHMACSHAAuthProtocol, + privProtocol=usmDESPrivProtocol, # wrongly use usmDESPrivProtocol + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget( + ("demo.pysnmp.com", 161), retries=0 + ), # TODO: change to localhost + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert isinstance(errorIndication, DecryptionError) + assert ( + str(errorIndication) + == "Ciphering services not available or ciphertext is broken" + ) + + snmpEngine.transportDispatcher.closeDispatcher() + @pytest.mark.asyncio async def test_usm_sha_aes128_wrong_user(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-aes-not-exist", - "authkey1", - "privkey1", - authProtocol=usmHMACSHAAuthProtocol, - privProtocol=usmAesCfb128Protocol, - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) - - assert isinstance(errorIndication, UnknownUserName) - assert str(errorIndication) == 'Unknown USM user' - - snmpEngine.transportDispatcher.closeDispatcher() + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-aes-not-exist", + "authkey1", + "privkey1", + authProtocol=usmHMACSHAAuthProtocol, + privProtocol=usmAesCfb128Protocol, + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget( + ("demo.pysnmp.com", 161), retries=0 + ), # TODO: change to localhost + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert isinstance(errorIndication, UnknownUserName) + assert str(errorIndication) == "Unknown USM user" + + snmpEngine.transportDispatcher.closeDispatcher() diff --git a/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_none.py b/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_none.py index 5c0b8b6e4..03fbe07b3 100644 --- a/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_none.py +++ b/tests/hlapi/asyncio/manager/cmdgen/test_usm_sha_none.py @@ -1,69 +1,80 @@ import pytest from pysnmp.hlapi.asyncio import * from pysnmp.proto.errind import UnknownUserName, WrongDigest +from tests.agent_context import AGENT_PORT, AgentContextManager + @pytest.mark.asyncio async def test_usm_sha_none(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-none", - "authkey1", - authProtocol=usmHMACSHAAuthProtocol, - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-none", + "authkey1", + authProtocol=usmHMACSHAAuthProtocol, + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget(("localhost", AGENT_PORT), retries=0), + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert errorIndication is None + assert errorStatus == 0 + assert len(varBinds) == 1 + assert varBinds[0][0].prettyPrint() == "SNMPv2-MIB::sysDescr.0" + isinstance(varBinds[0][1], OctetString) - assert errorIndication is None - assert errorStatus == 0 - assert len(varBinds) == 1 - assert varBinds[0][0].prettyPrint() == "SNMPv2-MIB::sysDescr.0" - isinstance(varBinds[0][1], OctetString) + snmpEngine.transportDispatcher.closeDispatcher() - snmpEngine.transportDispatcher.closeDispatcher() @pytest.mark.asyncio async def test_usm_sha_none_wrong_auth(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-none", - "authkey1", - authProtocol=usmHMACMD5AuthProtocol, # wrongly use usmHMACMD5AuthProtocol - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-none", + "authkey1", + authProtocol=usmHMACMD5AuthProtocol, # wrongly use usmHMACMD5AuthProtocol + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget( + ("demo.pysnmp.com", 161), retries=0 + ), # TODO: change to localhost + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) + + assert isinstance(errorIndication, WrongDigest) + assert str(errorIndication) == "Wrong SNMP PDU digest" - assert isinstance(errorIndication, WrongDigest) - assert str(errorIndication) == 'Wrong SNMP PDU digest' + snmpEngine.transportDispatcher.closeDispatcher() - snmpEngine.transportDispatcher.closeDispatcher() @pytest.mark.asyncio async def test_usm_sha_none_wrong_user(): - snmpEngine = SnmpEngine() - authData = UsmUserData( - "usr-sha-none-not-exist", - "authkey1", - authProtocol=usmHMACSHAAuthProtocol, - ) - errorIndication, errorStatus, errorIndex, varBinds = await getCmd( - snmpEngine, - authData, - UdpTransportTarget(("demo.pysnmp.com", 161), retries=0), - ContextData(), - ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), - ) + async with AgentContextManager(): + snmpEngine = SnmpEngine() + authData = UsmUserData( + "usr-sha-none-not-exist", + "authkey1", + authProtocol=usmHMACSHAAuthProtocol, + ) + errorIndication, errorStatus, errorIndex, varBinds = await getCmd( + snmpEngine, + authData, + UdpTransportTarget( + ("demo.pysnmp.com", 161), retries=0 + ), # TODO: change to localhost + ContextData(), + ObjectType(ObjectIdentity("SNMPv2-MIB", "sysDescr", 0)), + ) - assert isinstance(errorIndication, UnknownUserName) - assert str(errorIndication) == 'Unknown USM user' + assert isinstance(errorIndication, UnknownUserName) + assert str(errorIndication) == "Unknown USM user" - snmpEngine.transportDispatcher.closeDispatcher() + snmpEngine.transportDispatcher.closeDispatcher()