def testLocalSessionID(self): avp1 = LocalSessionID(0x1234) buf = avp1.encode() avp2 = LocalSessionID.decodeAll(buf) print avp2[0] print avp1
def test_LocalSessionID(self): # not isinstance(hiddenAvp, bool) or not isinstance(mustAvp, bool) try: self.LocalSessionID = LocalSessionID( value=0, mustAvp=7, hiddenAvp=7, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.LocalSessionID = LocalSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue="haha")
def test_recvSLI(self): conn_address = '127.11.2.17' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.19' conn = L2tpConnection(18, 18, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp1 = ControlMessageAVP(ControlMessageAVP.SLI) avp2 = CallSerialNumber() avps = [avp1, avp2] avps.append(localAvp) sli = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(sli.length, 40) self.assertEqual(sli.avps[0].messageType, ControlMessageAVP.SLI) ret = conn.recvSLI(sli) self.assertIsNone(ret) # Abnormal SLI message avps = list() sli = L2tpv3ControlPacket(0, 0, 1, avps) ret = conn.HandlePkt(sli) self.assertIsNone(ret) conn.CloseConnection()
def test_recvHELLO(self): conn_address = '127.11.2.16' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.18' conn = L2tpConnection(17, 17, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp = ControlMessageAVP(ControlMessageAVP.HELLO) avps = [avp] avps.append(localAvp) hello = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(hello.length, 30) self.assertEqual(hello.avps[0].messageType, 6) zlb = conn.HandlePkt(hello) self.assertEqual(zlb.length, 12) conn.CloseConnection()
def test_recvICRP(self): conn_address = '127.11.2.15' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.17' conn = L2tpConnection(16, 16, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp = ControlMessageAVP(ControlMessageAVP.ICRP) avps = [avp] avps.append(localAvp) icrp = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(icrp.length, 30) self.assertEqual(icrp.avps[0].messageType, 11) ret = conn.HandlePkt(icrp) self.assertIsNone(ret) conn.CloseConnection()
def test_recvCDN(self): conn_address = '127.11.2.14' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.16' conn = L2tpConnection(15, 15, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp = ControlMessageAVP(ControlMessageAVP.CDN) avps = [avp] avps.append(localAvp) cdn = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(cdn.length, 30) self.assertEqual(cdn.avps[0].messageType, 14) conn.HandlePkt(cdn) self.assertEqual(conn.fsm.current, 'idle') conn.CloseConnection()
def test_ReceiveSLI(self): avp1 = ControlMessageAVP(ControlMessageAVP.SLI) avp2 = LocalSessionID(1) avp3 = CallSerialNumber(12) # Can't handle AVP in SLI , return CDN avps = [avp1, avp2, avp3] session_receiver = L2tpv3Session(1, 2, 'receiver', self.conn) sli = L2tpv3ControlPacket(0, 0, 1, avps) sli.SetPktConnection(self.conn) sli.Connection.remoteConnID = 1 ret = session_receiver.ReceiveSLI(sli) self.assertIsNone(ret) # AVP length is 1, return None avps_none = [avp1] session_receiver = L2tpv3Session(1, 2, 'receiver', self.conn) sli = L2tpv3ControlPacket(0, 0, 1, avps_none) sli.SetPktConnection(self.conn) sli.Connection.remoteConnID = 1 ret = session_receiver.ReceiveSLI(sli) self.assertIsNone(ret) self.assertEqual(session_receiver.fsm.current, L2tpv3SessionRecipientFsm.StateIdle) L2tpv3GlobalSettings.MustAvpsCheck = True ret = session_receiver.ReceiveSLI(sli) sli.avps.append(avp2) avp_fake = fake_avp() sli.avps.append(avp_fake) ret = session_receiver.ReceiveSLI(sli) L2tpv3GlobalSettings.MustAvpsCheck = False self.assertIsInstance(ret, L2tpv3CDN) ret = session_receiver.ReceiveSLI(sli) self.assertIsInstance(ret, L2tpv3CDN)
def test_ReceiveICRP(self): avp1 = ControlMessageAVP(ControlMessageAVP.ICRP) avp2 = LocalSessionID(1) avps = [avp1, avp2] icrp = L2tpv3ControlPacket(0, 0, 1, avps) # fsm is L2tpv3SessionRecipientFsm session_receiver = L2tpv3Session(1, 2, 'receiver', self.conn) session_receiver.ReceiveICRP(icrp) self.assertEqual(session_receiver.fsm.current, L2tpv3SessionRecipientFsm.StateIdle) # fsm is L2tpv3SessionSenderFsm, receive a bad icrp, return cdn session_sender = L2tpv3Session(1, 2, 'sender', self.conn) cdn = session_sender.ReceiveICRP(icrp) self.assertEqual(cdn.avps[0].messageType, ControlMessageAVP.CDN) # fsm is L2tpv3SessionSenderFsm, receive a good icrp, return iccn icrp.SetPktSession(session_sender) iccn = session_sender.ReceiveICRP(icrp) self.assertEqual(iccn.avps[0].messageType, ControlMessageAVP.ICCN) L2tpv3GlobalSettings.MustAvpsCheck = True ret = session_sender.ReceiveICRP(icrp) L2tpv3GlobalSettings.MustAvpsCheck = False self.assertIsInstance(ret, L2tpv3CDN) session_sender = L2tpv3Session(1, 0, 'sender', self.conn) icrp.SetPktSession(session_sender) icrp.avps.remove(avp2) iccn = session_sender.ReceiveICRP(icrp) self.assertIsInstance(ret, L2tpv3CDN)
def testHandlePkt_SCCCN(self): """Handle control packet: SCCCN. Function: recvSCCCN. :return: """ conn_address = '127.11.2.9' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.11' conn = L2tpConnection(10, 10, conn_address, local_addr) # Receive a good SCCCN, return NULL avp1 = ControlMessageAVP(ControlMessageAVP.SCCCN) avp2 = AssignedControlConnectionID(10) avps = [avp1, avp2] scccn = L2tpv3ControlPacket(0x1234, 0, 1, avps) ret = conn.HandlePkt(scccn) self.assertIsNotNone(ret) self.assertIsInstance(ret, L2tpv3ACK) # Receive a bad SCCCN, return stopCCN session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp3 = CallSerialNumber() avps.append(localAvp) avps.append(avp3) scccn = L2tpv3ControlPacket(0x1234, 0, 1, avps) ret = conn.HandlePkt(scccn) self.assertIsNotNone(ret) self.assertIsInstance(ret, L2tpv3ACK) # Recovery tunnel receive SCCCN recover_conn = L2tpConnection(100, 100, conn_address, local_addr) recover_conn.isInRecovery = True conn.recoverConnection = recover_conn conn.isRecoveryTunnel = True avp1 = ControlMessageAVP(ControlMessageAVP.SCCCN) avp2 = AssignedControlConnectionID(10) avps = [avp1, avp2] scccn = L2tpv3ControlPacket(0x1234, 0, 1, avps) ret = conn.HandlePkt(scccn) self.assertFalse(recover_conn.isInRecovery) conn.CloseConnection()
def test__findSession(self): """Handle control packet: ICRQ, session not exist. :return: none """ conn_address = '127.11.2.20' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.22' conn = L2tpConnection(21, 21, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) # session1 and session2 are None, return none localAvp = LocalSessionID(3) remoteAvp = RemoteSessionID(4) avp = ControlMessageAVP(ControlMessageAVP.ICCN) avps = [avp, localAvp, remoteAvp] iccn = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(iccn.length, 40) self.assertEqual(iccn.avps[0].messageType, ControlMessageAVP.ICCN) self.assertEqual(iccn.avps[1].sessionID, 3) ret = conn._findSession(iccn) self.assertIsNone(ret) # session1 is not none and session2 is None, return session1 localAvp = LocalSessionID(2) remoteAvp = RemoteSessionID(4) avp = ControlMessageAVP(ControlMessageAVP.ICCN) avps = [avp, localAvp, remoteAvp] iccn = L2tpv3ControlPacket(0, 0, 1, avps) session1 = conn._findSession(iccn) self.assertIsNotNone(session1) conn.CloseConnection()
def test_allocate_local_session_id(self): conn_address = '127.11.2.25' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.24' conn = L2tpConnection(12, 12, conn_address, local_addr) pkt = L2tpv3ControlPacket() ret = conn._findSession(pkt=pkt) self.assertIsNone(ret) conn.recvICCN(pkt) conn.recvCDN(pkt) conn.recvICRP(pkt) conn.recvSLI(pkt) L2tpv3GlobalSettings.MustAvpsCheck = True ret = conn.recvSCCRQ(pkt) self.assertIsInstance(ret, L2tpv3StopCCN) ret = conn.recvSCCRP(pkt) ret = conn.recvSCCCN(pkt) ret = conn.recvStopCCN(pkt) ret = conn.allocate_local_session_id(pkt=pkt) self.assertEqual(ret, 0) remoteEndId = RemoteEndID() localsession = LocalSessionID(0x112) pkt.avps.append(remoteEndId) pkt.avps.append(localsession) ret = conn.allocate_local_session_id(pkt=pkt) self.assertEqual(ret, 0) sublayer = DepiL2SpecificSublayerSubtype(17) pkt.avps.append(sublayer) ret = conn.allocate_local_session_id(pkt=pkt) self.assertEqual(ret, 0x1100000) icrq = L2tpv3ControlPacket.decode(self.ircq_buf) ret = conn.allocate_local_session_id(pkt=icrq) self.assertEqual(ret, 0x10030000) for avp in icrq.avps: if isinstance(avp, RemoteSessionID): icrq.avps.remove(avp) avp_remote = RemoteSessionID(0x80000001) icrq.avps.append(avp_remote) ret = conn.allocate_local_session_id(pkt=icrq) self.assertEqual(ret, 0x80000001) conn.CloseConnection() conn.CloseConnection()
def testHandlePkt_SCCRQ(self): """Handle control packet: SCCRQ. Function: recvSCCRQ. :return: """ conn_address = '127.11.2.7' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.9' conn = L2tpConnection(8, 8, conn_address, local_addr) # Receive a good SCCRQ, return SCCRP avp1 = ControlMessageAVP(ControlMessageAVP.SCCRQ) avp2 = Hostname("TestAVP") avp3 = RouterID(0) avp4 = AssignedControlConnectionID(1) avp5 = PseudowireCapList(()) avps = [avp1, avp2, avp3, avp4, avp5] sccrq = L2tpv3ControlPacket(0x1234, 0, 1, avps) sccrp = conn.HandlePkt(sccrq) self.assertEqual(sccrp.connectionID, 8) self.assertEqual(sccrp.length, 28) self.assertEqual(sccrp.avps[0].length, 8) self.assertEqual(conn.fsm.current, L2tpv3ConnectionFsm.StateWaitCtlConn) # self.assertEqual(sccrp.avps[0].messageType, ControlMessageAVP.SCCRP) # Receive a bad SCCRQ, return stopCCN session = L2tpv3Session(1, 2, 'receiver', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avps.append(localAvp) sccrp = L2tpv3ControlPacket(0x1234, 0, 1, avps) stopCCN = conn.HandlePkt(sccrp) self.assertEqual(stopCCN.length, 58) self.assertEqual(stopCCN.connectionID, 8) self.assertEqual(stopCCN.avps[0].length, 8) self.assertEqual( stopCCN.avps[0].messageType, ControlMessageAVP.StopCCN)
def test_recvStopCCN(self): conn_address = '127.11.2.19' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.21' conn = L2tpConnection(20, 20, conn_address, local_addr) session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) # receive sccrq, new state->wait-ctl-conn avp1 = ControlMessageAVP(ControlMessageAVP.SCCRQ) avp2 = AssignedControlConnectionID(10) avps = [avp1, avp2] sccrq = L2tpv3ControlPacket(0x1234, 0, 1, avps) sccrp = conn.HandlePkt(sccrq) self.assertEqual( conn.fsm.current, L2tpv3ConnectionFsm.StateWaitCtlConn) # receive SCCCN, new state->established avp1 = ControlMessageAVP(ControlMessageAVP.SCCCN) avp2 = AssignedControlConnectionID(10) avps = [avp1, avp2] scccn = L2tpv3ControlPacket(0x1234, 0, 1, avps) ret = conn.HandlePkt(scccn) self.assertEqual( conn.fsm.current, L2tpv3ConnectionFsm.StateEstablished) # receive a stopCCN, new state -> idle localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avp = ControlMessageAVP(ControlMessageAVP.StopCCN) avps = [avp] avps.append(localAvp) stopCCN = L2tpv3ControlPacket(0, 0, 1, avps) self.assertEqual(stopCCN.length, 30) self.assertEqual(stopCCN.avps[0].messageType, 4) ret = conn.HandlePkt(stopCCN) self.assertEqual(conn.fsm.current, L2tpv3ConnectionFsm.StateIdle)
def testHandlePkt_SCCRP(self): """Handle control packet: SCCRP. Function: recvSCCRP. :return: """ conn_address = '127.11.2.8' global_dispatcher = Dispatcher() dispatcher = L2tpv3Dispatcher( global_dispatcher, conn_address, True, None) L2tpv3GlobalSettings.Dispatcher = dispatcher L2tpv3GlobalSettings.MustAvpsCheck = False local_addr = '127.11.2.10' conn = L2tpConnection(9, 9, conn_address, local_addr) # Receive a good SCCRP, return SCCCN avp1 = ControlMessageAVP(ControlMessageAVP.SCCRP) avp2 = AssignedControlConnectionID(10) avps = [avp1, avp2] sccrp = L2tpv3ControlPacket(0x1234, 0, 1, avps) scccn = conn.HandlePkt(sccrp) self.assertEqual(scccn.avps[0].messageType, ControlMessageAVP.SCCCN) self.assertEqual(scccn.connectionID, 10) self.assertEqual(scccn.avps[0].length, 8) # Receive a bad SCCRP, return stopCCN session = L2tpv3Session(1, 2, 'receive', conn) conn.addSession(session) localSessionID = session.remoteSessionId localAvp = LocalSessionID(localSessionID) avps.append(localAvp) sccrp = L2tpv3ControlPacket(0x1234, 0, 1, avps) cdn = conn.HandlePkt(sccrp) self.assertEqual(cdn.length, 58) self.assertEqual(cdn.connectionID, 10) self.assertEqual(cdn.avps[0].length, 8) self.assertEqual(cdn.avps[0].messageType, ControlMessageAVP.StopCCN) conn.CloseConnection()
def setUp(self): self.ControlMessageAVP = ControlMessageAVP( messageType=ControlMessageAVP.SCCRQ) self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=15, errorCode=760, errMessage="zyj", mustAvp=True, attrValue="yong") self.ProtocolVersion = ProtocolVersion( version=10, revision=20, attrValue=None) self.FrameCapabilities = FrameCapabilities( bitmask=0, async=False, sync=False, attrValue=None) self.TieBreaker = TieBreaker(value="12345678") self.FirmwareRevision = FirmwareRevision( value=0, hiddenAvp=False, attrValue=None) self.Hostname = Hostname(value="value", mustAvp=True) self.VendorName = VendorName( value="man", mustAvp=True, hiddenAvp=False) self.ReceiveWinSize = ReceiveWinSize( value=0, mustAvp=False, attrValue=None) self.RouterID = RouterID(value=0, mustAvp=False, attrValue=None) self.AssignedControlConnectionID = AssignedControlConnectionID( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.PseudowireCapList = PseudowireCapList( value=(), mustAvp=False, hiddenAvp=False, attrValue=None) self.CallSerialNumber = CallSerialNumber( value=0, hiddenAvp=False, attrValue=None) self.SequencingRequired = SequencingRequired() self.LocalSessionID = LocalSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue=None) self.RemoteSessionID = RemoteSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue=None) self.RemoteEndID = RemoteEndID() self.PseudowireType = PseudowireType( value=12, mustAvp=False, hiddenAvp=False, attrValue=None) self.L2SpecificSublayer = L2SpecificSublayer( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.DataSequencing = DataSequencing( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.CircuitStatus = CircuitStatus( active=True, new=True, mustAvp=False, hiddenAvp=False, attrValue=None) self.SbfdDiscriminator = SbfdDiscriminator(value=0, mustAvp=True, attrValue=None) self.SbfdVccv = SbfdVccv(value=0, mustAvp=True, attrValue=None) self.FailoverCapability = FailoverCapability( failoverCapofCC=True, failoverCapofDC=False, recoveryTime=0, hiddenAvp=False, attrValue=None) self.TunnelRecovery = TunnelRecovery( recoverTunnelID=1, recoverRemoteTunnelID=2, attrValue=None) self.SuggestedControlSequence = SuggestedControlSequence( suggestedNs=0, suggestedNr=0, hiddenAvp=False, attrValue=None) self.FailoverSessionState = FailoverSessionState( sessionID=1, remoteSessionID=2, hiddenAvp=False, attrValue=None)
class TestL2tpv3RFC3931AVPs(unittest.TestCase): # open the logger __metaclass__ = AddLoggerToClass def setUp(self): self.ControlMessageAVP = ControlMessageAVP( messageType=ControlMessageAVP.SCCRQ) self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=15, errorCode=760, errMessage="zyj", mustAvp=True, attrValue="yong") self.ProtocolVersion = ProtocolVersion( version=10, revision=20, attrValue=None) self.FrameCapabilities = FrameCapabilities( bitmask=0, async=False, sync=False, attrValue=None) self.TieBreaker = TieBreaker(value="12345678") self.FirmwareRevision = FirmwareRevision( value=0, hiddenAvp=False, attrValue=None) self.Hostname = Hostname(value="value", mustAvp=True) self.VendorName = VendorName( value="man", mustAvp=True, hiddenAvp=False) self.ReceiveWinSize = ReceiveWinSize( value=0, mustAvp=False, attrValue=None) self.RouterID = RouterID(value=0, mustAvp=False, attrValue=None) self.AssignedControlConnectionID = AssignedControlConnectionID( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.PseudowireCapList = PseudowireCapList( value=(), mustAvp=False, hiddenAvp=False, attrValue=None) self.CallSerialNumber = CallSerialNumber( value=0, hiddenAvp=False, attrValue=None) self.SequencingRequired = SequencingRequired() self.LocalSessionID = LocalSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue=None) self.RemoteSessionID = RemoteSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue=None) self.RemoteEndID = RemoteEndID() self.PseudowireType = PseudowireType( value=12, mustAvp=False, hiddenAvp=False, attrValue=None) self.L2SpecificSublayer = L2SpecificSublayer( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.DataSequencing = DataSequencing( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) self.CircuitStatus = CircuitStatus( active=True, new=True, mustAvp=False, hiddenAvp=False, attrValue=None) self.SbfdDiscriminator = SbfdDiscriminator(value=0, mustAvp=True, attrValue=None) self.SbfdVccv = SbfdVccv(value=0, mustAvp=True, attrValue=None) self.FailoverCapability = FailoverCapability( failoverCapofCC=True, failoverCapofDC=False, recoveryTime=0, hiddenAvp=False, attrValue=None) self.TunnelRecovery = TunnelRecovery( recoverTunnelID=1, recoverRemoteTunnelID=2, attrValue=None) self.SuggestedControlSequence = SuggestedControlSequence( suggestedNs=0, suggestedNr=0, hiddenAvp=False, attrValue=None) self.FailoverSessionState = FailoverSessionState( sessionID=1, remoteSessionID=2, hiddenAvp=False, attrValue=None) def tearDown(self): pass def test_ControlMessageAVP(self): # messageType is in ControlMessageAVP.ControlMesagedSet and attrValue # is None self.controlAvp = ControlMessageAVP(ControlMessageAVP.SCCRQ) self.assertEqual(self.controlAvp.messageType, 1) # messageType is in ControlMessageAVP.ControlMesagedSet and attrValue # is not None self.controlAvp = ControlMessageAVP(ControlMessageAVP.SCCRP, "qwer7ss") self.assertEqual(self.controlAvp.messageType, 2) # messageType is Not in ControlMessageAVP.ControlMesagedSet try: self.controlAvp = ControlMessageAVP(3303) except Exception as e: self.assertEqual(str(e), "message type error") def test_ControlMessageAVP_SetFlags(self): self.ControlMessageAVP.SetFlags(False, True) self.assertEqual(self.ControlMessageAVP.mustAvp, False) self.assertEqual(self.ControlMessageAVP.hiddenAvp, True) def test_ControlMessageAVP_handleAvp(self): ret_value = self.ControlMessageAVP.handleAvp("0980", "nofalse") self.assertEqual(ret_value, True) def test_ControlMessageAVP_decode(self): for value in self.ControlMessageAVP.ControlMesagedSet: buff0 = struct.pack('!H', value) result = self.ControlMessageAVP.decode(buff0) print "current control message is : " + self.ControlMessageAVP.ControlMesagedSet[value] self.assertEqual(result.messageType, value) buff0 = struct.pack('!H', 0xffff) try: self.ControlMessageAVP.decode(buff0) except Exception as e: self.assertEqual(str(e), "message type error") def test_ControlMessageAVP_ValidateFlags(self): self.ControlMessageAVP.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.ControlMessageAVP.ValidateFlags( mustAvp=True, hiddenAvp=True), False) def test_ResultCode(self): # msgType != ControlMessageAVP.StopCCN and msgType != # ControlMessageAVP.CDN try: self.ResultCode = ResultCode( msgType=1, resultCode=2, errorCode=None, errMessage=None, mustAvp=True, attrValue=None) except Exception as e: self.assertEqual(str(e), "Wrong parameter Type") # msgType = ControlMessageAVP.StopCCN or msgType = # ControlMessageAVP.CDN try: self.ResultCode = ResultCode( msgType=ControlMessageAVP.StopCCN, resultCode=2, errorCode=None, errMessage=None, mustAvp=True, attrValue=None) except Exception as e: self.assertEqual(str(e), "Wrong parameter Type") # msgType == ControlMessageAVP.StopCCN and resultCode not in # ResultCode.ResultCodeStopCCN # ResultCode.ResultCodeStopCCN = {0: 'Reserved.', 1: 'General request to clear control connection.', # 2: 'General error, Error Code indicates the problem.', 3: 'Control connection already exists.', # 4: 'Requester is not authorized to establish a control connection.', # 5: 'The protocol version of the requester is not supported, Error Code indicates highest # version supported.', 6: 'Requester is being shut down.', # 7: 'Finite state machine error or timeout'} try: self.ResultCode = ResultCode( msgType=ControlMessageAVP.StopCCN, resultCode=8, errorCode=None, errMessage=None, mustAvp=True, attrValue=None) except Exception as e: self.assertEqual(str(e), "Wrong parameter Type") # msgType == ControlMessageAVP.CDN and resultCode not in # ResultCode.ResultCodeCDN try: self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=8, errorCode=None, errMessage=None, mustAvp=True, attrValue=None) except Exception as e: self.assertEqual(str(e), "Wrong parameter Type") # attrValue is Not None self.errorCode is not None and self.errorMsg is # not None self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=8, errorCode=2, errMessage=1, mustAvp=True, attrValue="Jiang") # attrValue is None self.errorCode is Not None or self.errorMsg is Not None # msgType == ControlMessageAVP.StopCCN and resultCode not in # ResultCode.ResultCodeStopCCN # msgType == ControlMessageAVP.CDN and resultCode is in # ResultCode.ResultCodeCDN # ResultCode.ResultCodeCDN = {0: 'Reserved.', # 1: 'Session disconnected due to loss of carrier or circuit disconnect.', # 2: 'Session disconnected for the reason indicated in Error Code.', # 3: 'Session disconnected for administrative reasons.', # 4: 'Session establishment failed due to lack of appropriate facilities being # available (temporary condition).', # 5: 'Session establishment failed due to lack of appropriate facilities being # available (permanent condition).', # 16: 'Finite state machine error or timeout.', # 13: 'Session not established due to losing tie breaker.', # 14: 'Session not established due to unsupported PW type.', # 15: 'Session not established, sequencing required without valid # L2-Specific Sublayer.'} # errorCode = None self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=15, errorCode=None, errMessage="zyj", mustAvp=True, attrValue=None) # errorCode != None self.ResultCode = ResultCode( msgType=ControlMessageAVP.CDN, resultCode=15, errorCode=760, errMessage="zyj", mustAvp=True, attrValue=None) def test_ResultCode_SetFlags(self): self.ResultCode.SetFlags(mustAvp=True, hiddenAvp=False) def test_ResultCode_handleAvp(self): self.ResultCode.handleAvp(pkt="10352", retPak="456131") self.assertEqual( self.ResultCode.handleAvp(pkt="10352", retPak="456131"), True) def test_ResultCode_decode(self): # len(buf) == 2 buf1 = "22" self.ResultCode.decode(buf=buf1) # len(buf) == 4 buf2 = "4444" self.ResultCode.decode(buf=buf2) # len(buf) > 4 buf3 = "12345" self.ResultCode.decode(buf=buf3) # len(buf) is other try: buf4 = "1" self.ResultCode.decode(buf=buf4) except Exception as e: self.assertEqual( str(e), "Cannot decode the return code AVP since length error.") def test_ResultCode_ValidateFlags(self): # return hiddenAvp == False self.ResultCode.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.ResultCode.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_ProtocolVersion(self): # attrValue is Not None self.ProtocolVersion = ProtocolVersion( version=10, revision=20, attrValue="bce") def test_ProtocolVersion_handleAvp(self): # retPak is None self.ProtocolVersion.handleAvp(pkt="zyjbce", retPak=None) self.assertEqual( self.ProtocolVersion.handleAvp(pkt="zyjbce", retPak=None), True) # retPak is Not None try: self.ProtocolVersion.handleAvp(pkt="zyjbce", retPak='retPaking') except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_ProtocolVersion_SetFlags(self): self.ProtocolVersion.SetFlags(mustAvp=True, hiddenAvp=False) def test_ProtocolVersion_decode(self): buff0 = "xq" self.ProtocolVersion.decode(buff0) def test_ProtocolVersion_ValidateFlags(self): # return (mustAvp == True) and (hiddenAvp == False) self.ProtocolVersion.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.ProtocolVersion.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_FrameCapabilities(self): # not isinstance(async, bool) or not isinstance(sync, bool) try: self.FrameCapabilities = FrameCapabilities( bitmask=0, async="sb", sync="bf", attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.FrameCapabilities = FrameCapabilities( bitmask=0, async=False, sync=False, attrValue="love") def test_FrameCapabilities_handleAvp(self): # retPak is Not None try: self.FrameCapabilities.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") # retPak is None self.FrameCapabilities.handleAvp(pkt="RFC3931", retPak=None) self.assertEqual( self.FrameCapabilities.handleAvp(pkt="RFC3931", retPak=None), True) def test_FrameCapabilities_SetFlags(self): self.FrameCapabilities.SetFlags(mustAvp=True, hiddenAvp=False) def test_FrameCapabilities_decode(self): buff1 = "4444" self.FrameCapabilities.decode(buf=buff1) def test_FrameCapabilities_ValidateFlags(self): # return (mustAvp == True) self.FrameCapabilities.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.FrameCapabilities.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_TieBreaker(self): # not isinstance(value, str) try: self.TieBreaker = TieBreaker(value=23) except Exception as e: self.assertEqual(str(e), "parameter type error") # len(value) != 8 try: self.TieBreaker = TieBreaker(value="1234567") except Exception as e: self.assertEqual(str(e), "Tie Breaker value shuold be 8") def test_TieBreaker_handleAvp(self): self.TieBreaker.handleAvp(pkt="zxcvb", retPak="money") self.assertEqual( self.TieBreaker.handleAvp(pkt="zxcvb", retPak="money"), True) def test_TieBreaker_SetFlags(self): self.TieBreaker.SetFlags(mustAvp=True, hiddenAvp=False) def test_TieBreaker_decode(self): buff2 = "87654321" self.TieBreaker.decode(buf=buff2) def test_TieBreaker_ValidateFlags(self): # return (hiddenAvp == True) self.TieBreaker.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.TieBreaker.ValidateFlags( mustAvp=True, hiddenAvp=False), False) def test_FirmwareRevision(self): # not isinstance(hiddenAvp, bool) try: self.FirmwareRevision = FirmwareRevision( value=0, hiddenAvp=666, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is None self.FirmwareRevision = FirmwareRevision( value=0, hiddenAvp=False, attrValue="girl") def test_FirmwareRevision_handleAvp(self): # retPak is Not None # Skip the handleAvp and coverage it try: self.FirmwareRevision.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") # retPak is None self.FirmwareRevision.handleAvp(pkt="delay", retPak=None) def test_FirmwareRevision_SetFlags(self): self.FirmwareRevision.SetFlags(mustAvp=True, hiddenAvp=False) def test_FirmwareRevision_decode(self): buff3 = "22" self.FirmwareRevision.decode(buf=buff3) def test_FirmwareRevision_ValidateFlags(self): # return (mustAvp == False) self.FirmwareRevision.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.FirmwareRevision.ValidateFlags( mustAvp=True, hiddenAvp=False), False) def test_Hostname(self): # not isinstance(value, str) or len(value) < 1 try: self.Hostname = Hostname(value="", mustAvp=True) except Exception as e: self.assertEqual(str(e), "parameter type error") def test_Hostname_handleAvp(self): # retPak is None self.Hostname.handleAvp(pkt="boy", retPak=None) self.assertEqual(self.Hostname.handleAvp(pkt="boy", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.Hostname.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_Hostname_SetFlags(self): self.Hostname.SetFlags(mustAvp=True, hiddenAvp=False) def test_Hostname_decode(self): buff5 = "zxcvrt" self.Hostname.decode(buf=buff5) def test_Hostname_ValidateFlags(self): # return (hiddenAvp == False) self.Hostname.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.Hostname.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_VendorName(self): # not isinstance(value, str) or len(value) < 1 try: self.VendorName = VendorName( value="", mustAvp=True, hiddenAvp=False) except Exception as e: self.assertEqual(str(e), "parameter type error") def test_VendorName_handleAvp(self): # retPak is None self.VendorName.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.VendorName.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.VendorName.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_VendorName_SetFlags(self): self.VendorName.SetFlags(mustAvp=True, hiddenAvp=False) def test_VendorName_decode(self): buff6 = "123" self.VendorName.decode(buf=buff6) def test_VendorName_ValidateFlags(self): self.VendorName.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.VendorName.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_ReceiveWinSize(self): # not isinstance(mustAvp, bool) try: self.ReceiveWinSize = ReceiveWinSize( value=0, mustAvp=33, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.ReceiveWinSize = ReceiveWinSize( value=0, mustAvp=False, attrValue="baby") def test_ReceiveWinSize_handleAvp(self): # retPak is Not None # Skip the handleAvp and coverage it try: self.ReceiveWinSize.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute # 'Connection'") def test_ReceiveWinSize_SetFlags(self): self.ReceiveWinSize.SetFlags(mustAvp=True, hiddenAvp=False) def test_ReceiveWinSize_decode(self): buff6 = "22" self.ReceiveWinSize.decode(buf=buff6) def test_ReceiveWinSize_ValidateFlags(self): self.ReceiveWinSize.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.ReceiveWinSize.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_RouterID(self): # not isinstance(mustAvp, bool) try: self.RouterID = RouterID(value="", mustAvp=99, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.RouterID = RouterID(value="", mustAvp=True, attrValue="aaa") def test_RouterID_handleAvp(self): # retPak is None self.RouterID.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.RouterID.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.RouterID.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_RouterID_SetFlags(self): self.RouterID.SetFlags(mustAvp=True, hiddenAvp=False) def test_RouterID_decode(self): buff6 = "1234" self.RouterID.decode(buf=buff6) def test_RouterID_ValidateFlags(self): self.RouterID.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.RouterID.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_AssignedControlConnectionID(self): # not isinstance(mustAvp, bool) or not isinstance(hiddenAvp, bool) try: self.AssignedControlConnectionID = AssignedControlConnectionID( value=0, mustAvp=333, hiddenAvp=666, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.AssignedControlConnectionID = AssignedControlConnectionID( value=0, mustAvp=False, hiddenAvp=False, attrValue=None) def test_AssignedControlConnectionID_handleAvp(self): # retPak is None self.AssignedControlConnectionID.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.AssignedControlConnectionID.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.AssignedControlConnectionID.handleAvp( pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute # 'Connection'") def test_AssignedControlConnectionID_SetFlags(self): self.AssignedControlConnectionID.SetFlags( mustAvp=True, hiddenAvp=False) def test_AssignedControlConnectionID_decode(self): buff6 = "1234" self.AssignedControlConnectionID.decode(buf=buff6) def test_AssignedControlConnectionID_ValidateFlags(self): self.AssignedControlConnectionID.ValidateFlags( mustAvp=True, hiddenAvp=False) self.assertEqual( self.AssignedControlConnectionID.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_PseudowireCapList(self): # not isinstance(value, tuple) or not isinstance(mustAvp, bool) or not # isinstance(hiddenAvp, bool) try: self.PseudowireCapList = PseudowireCapList( value=1, mustAvp=1, hiddenAvp=1, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.PseudowireCapList = PseudowireCapList( value=(), mustAvp=False, hiddenAvp=False, attrValue="good") self.PseudowireCapList = PseudowireCapList(value=(1, 2, 3, 4)) def test_PseudowireCapList_handleAvp(self): # retPak is None self.PseudowireCapList.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.PseudowireCapList.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.PseudowireCapList.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_PseudowireCapList_SetFlags(self): self.PseudowireCapList.SetFlags(mustAvp=True, hiddenAvp=False) def test_PseudowireCapList_decode(self): buff6 = "1234" avp = self.PseudowireCapList.decode(buf=buff6) print avp def test_PseudowireCapList_ValidateFlags(self): self.PseudowireCapList.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.PseudowireCapList.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_CallSerialNumber(self): # not isinstance(hiddenAvp, bool) try: self.CallSerialNumber = CallSerialNumber( value=0, hiddenAvp=999, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.CallSerialNumber = CallSerialNumber( value=0, hiddenAvp=False, attrValue="jjjkkk") def test_CallSerialNumber_handleAvp(self): # retPak is None self.CallSerialNumber.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.CallSerialNumber.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # self. AssignedControlConnectionID.handleAvp def test_CallSerialNumber_SetFlags(self): self.CallSerialNumber.SetFlags(mustAvp=True, hiddenAvp=False) def test_CallSerialNumber_decode(self): buff6 = "1234" self.CallSerialNumber.decode(buf=buff6) def test_CallSerialNumber_ValidateFlags(self): # return (mustAvp == True) self.CallSerialNumber.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.CallSerialNumber.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_SequencingRequired_handleAvp(self): # retPak is None self.SequencingRequired.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.SequencingRequired.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.SequencingRequired.handleAvp( pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_SequencingRequired_SetFlags(self): self.SequencingRequired.SetFlags(mustAvp=True, hiddenAvp=False) def test_SequencingRequired_decode(self): buff6 = "1234" self.SequencingRequired.decode(buf=buff6) def test_SequencingRequired_ValidateFlags(self): # return (mustAvp == True) self.SequencingRequired.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.SequencingRequired.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_LocalSessionID(self): # not isinstance(hiddenAvp, bool) or not isinstance(mustAvp, bool) try: self.LocalSessionID = LocalSessionID( value=0, mustAvp=7, hiddenAvp=7, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.LocalSessionID = LocalSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue="haha") def test_LocalSessionID_handleAvp(self): # retPak is None self.LocalSessionID.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.LocalSessionID.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.LocalSessionID.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute # 'Session'") def test_LocalSessionID_SetFlags(self): self.LocalSessionID.SetFlags(mustAvp=True, hiddenAvp=False) def test_LocalSessionID_decode(self): buff6 = "1234" self.LocalSessionID.decode(buf=buff6) def test_LocalSessionID_ValidateFlags(self): # return (mustAvp == True) self.LocalSessionID.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.LocalSessionID.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_RemoteSessionID(self): # not isinstance(hiddenAvp, bool) or not isinstance(mustAvp, bool) try: self.RemoteSessionID = RemoteSessionID( value=0, mustAvp=7, hiddenAvp=7, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.RemoteSessionID = RemoteSessionID( value=0, mustAvp=True, hiddenAvp=False, attrValue="haha") def test_RemoteSessionID_encode(self): self.RemoteSessionID.encode() def test_RemoteSessionID_handleAvp(self): # retPak is None self.RemoteSessionID.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.RemoteSessionID.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.RemoteSessionID.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_RemoteSessionID_SetFlags(self): self.RemoteSessionID.SetFlags(mustAvp=True, hiddenAvp=False) def test_RemoteSessionID_decode(self): buff6 = "1234" self.RemoteSessionID.decode(buf=buff6) def test_RemoteSessionID_ValidateFlags(self): # return (mustAvp == True) self.RemoteSessionID.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.RemoteSessionID.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_RemoteEndID(self): # not isinstance(value, str) or len(value) < 1 or not isinstance(mustAvp, bool) # or isinstance(hiddenAvp, bool) try: self.RemoteEndID = RemoteEndID(value="", mustAvp=3, hiddenAvp=3) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None # self.RemoteEndID = RemoteEndID(value="", mustAvp=True, # hiddenAvp=False) def test_RemoteEndID_handleAvp(self): # retPak is None self.RemoteEndID.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.RemoteEndID.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.RemoteEndID.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_RemoteEndID_SetFlags(self): self.RemoteEndID.SetFlags(mustAvp=True, hiddenAvp=False) def test_RemoteEndID_decode(self): buff6 = struct.pack('!34B', 0x0, 0x0, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x03, 0x02, 0x02, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x04, 0x04, 0x00, 0x03, 0x05, 0x05, 0x00, 0x03, 0x06, 0x06, 0x00, 0x03, 0x07, 0x07) result = self.RemoteEndID.decode(buff6) print str(result) def test_RemoteEndID_ValidateFlags(self): # return (mustAvp == True) self.RemoteEndID.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.RemoteEndID.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_PseudowireType(self): # not isinstance(mustAvp, bool) or not isinstance(hiddenAvp, bool) try: self.PseudowireType = PseudowireType( value=12, mustAvp=5, hiddenAvp=5, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") try: self.PseudowireType = PseudowireType(value=1234) except Exception as e: self.assertEqual(str(e), "PseudowireType type is not supported") # attrValue is Not None self.PseudowireType = PseudowireType(value=12, attrValue="king") print str(self.PseudowireType) self.assertEqual(self.PseudowireType.attrValue, "king") def test_PseudowireType_handleAvp(self): # retPak is None self.PseudowireType.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.PseudowireType.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it avp = [] retPak = L2tpv3ControlPacket(0, 0, avps=avp) try: self.PseudowireType.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") avp = [] pw = PseudowireType(PseudowireType.PSPPW) retPak = L2tpv3ControlPacket(avps=avp) ret = pw.handleAvp(pkt="RFC3931", retPak=retPak) self.assertTrue(ret) self.assertEqual(retPak.avps[0].pwType, PseudowireType.PSPPW) def test_PseudowireType_SetFlags(self): self.PseudowireType.SetFlags(mustAvp=False, hiddenAvp=True) self.assertEqual(self.PseudowireType.mustAvp, False) self.assertEqual(self.PseudowireType.hiddenAvp, True) def test_PseudowireType_decode(self): buff6 = struct.pack('!H', 12) avp = self.PseudowireType.decode(buf=buff6) self.assertEqual(self.PseudowireType.pwType, 12) def test_PseudowireType_ValidateFlags(self): # return (mustAvp == True) ret = self.PseudowireType.ValidateFlags(True, False) self.assertEqual(ret, True) ret = self.PseudowireType.ValidateFlags(False, False) self.assertEqual(ret, False) ret = self.PseudowireType.ValidateFlags(True, True) self.assertEqual(ret, False) ret = self.PseudowireType.ValidateFlags(False, True) self.assertEqual(ret, False) def test_L2SpecificSublayer(self): # not isinstance(mustAvp, bool) or not isinstance(hiddenAvp, bool) try: self.L2SpecificSublayer = L2SpecificSublayer(value=3, mustAvp=543, hiddenAvp=88888) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.L2SpecificSublayer = L2SpecificSublayer(value=3, attrValue="show") self.assertEqual(self.L2SpecificSublayer.attrValue, "show") def test_L2SpecificSublayer_handleAvp(self): # retPak is None self.L2SpecificSublayer.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.L2SpecificSublayer.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.L2SpecificSublayer.handleAvp( pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_L2SpecificSublayer_SetFlags(self): self.L2SpecificSublayer.SetFlags(mustAvp=False, hiddenAvp=True) self.assertEqual(self.L2SpecificSublayer.mustAvp, False) self.assertEqual(self.L2SpecificSublayer.hiddenAvp, True) def test_L2SpecificSublayer_decode(self): buff6 = struct.pack('!H', 3) avp = self.L2SpecificSublayer.decode(buf=buff6) print str(avp) self.assertEqual(avp.l2Sublayer, 3) def test_L2SpecificSublayer_ValidateFlags(self): # return (mustAvp == True) self.L2SpecificSublayer.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.L2SpecificSublayer.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_DataSequencing(self): # not isinstance(mustAvp, bool) or not isinstance(hiddenAvp, bool) # or value not in (0, 1, 2) try: self.DataSequencing = DataSequencing( value=4, mustAvp=9999, hiddenAvp=53, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.DataSequencing = DataSequencing( value=0, mustAvp=False, hiddenAvp=False, attrValue="zhang") def test_DataSequencing___str__(self): self.DataSequencing.__str__() def test_DataSequencing_handleAvp(self): # retPak is None self.DataSequencing.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.DataSequencing.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.DataSequencing.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_DataSequencing_SetFlags(self): self.DataSequencing.SetFlags(mustAvp=True, hiddenAvp=False) def test_DataSequencing_decode(self): # return DataSequencing(value, mustAvp=False, attrValue=buf) try: buff6 = "00" self.DataSequencing.decode(buf=buff6) except Exception as e: self.assertEqual(str(e), "parameter type error") def test_DataSequencing_ValidateFlags(self): # return (mustAvp == True) self.DataSequencing.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual( self.DataSequencing.ValidateFlags(mustAvp=True, hiddenAvp=False), True) def test_CircuitStatus(self): # not isinstance(active, bool) or not isinstance(mustAvp, bool) or not isinstance(hiddenAvp, bool) # or not isinstance(new, bool) try: self.CircuitStatus = CircuitStatus(active=0, new=0, mustAvp=0, hiddenAvp=0, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.CircuitStatus = CircuitStatus( active=True, new=True, mustAvp=False, hiddenAvp=False, attrValue="abc") def test_CircuitStatus_handleAvp(self): # retPak is None self.CircuitStatus.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.CircuitStatus.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.CircuitStatus.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_CircuitStatus_SetFlags(self): self.CircuitStatus.SetFlags(mustAvp=True, hiddenAvp=False) def test_CircuitStatus_decode(self): # return DataSequencing(value, mustAvp=False, attrValue=buf) try: buff6 = "00" self.CircuitStatus.decode(buf=buff6) except Exception as e: self.assertEqual(str(e), "parameter type error") def test_CircuitStatus_ValidateFlags(self): # return (mustAvp == True) self.CircuitStatus.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.CircuitStatus.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_SbfdDiscriminator(self): # not isinstance(mustAvp, bool) try: self.SbfdDiscriminator = SbfdDiscriminator(value="", mustAvp=99, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.SbfdDiscriminator = SbfdDiscriminator(value="", mustAvp=True, attrValue="aaa") def test_SbfdDiscriminator_handleAvp(self): # retPak is None self.SbfdDiscriminator.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.SbfdDiscriminator.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.SbfdDiscriminator.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_SbfdDiscriminator_SetFlags(self): self.SbfdDiscriminator.SetFlags(mustAvp=True, hiddenAvp=False) def test_SbfdDiscriminator_decode(self): buff6 = "1234" self.SbfdDiscriminator.decode(buf=buff6) def test_SbfdDiscriminator_ValidateFlags(self): self.SbfdDiscriminator.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.SbfdDiscriminator.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_SbfdVccv(self): # not isinstance(mustAvp, bool) try: self.SbfdVccv = SbfdVccv(value="", mustAvp=99, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.SbfdVccv = SbfdVccv(value="", mustAvp=True, attrValue="aaa") def test_SbfdVccv_handleAvp(self): # retPak is None self.SbfdVccv.handleAvp(pkt="lkjh", retPak=None) self.assertEqual( self.SbfdVccv.handleAvp(pkt="lkjh", retPak=None), True) # retPak is Not None # Skip the handleAvp and coverage it try: self.SbfdVccv.handleAvp(pkt="RFC3931", retPak="beautiful") except Exception as e: pass # self.assertEqual(str(e), "'str' object has no attribute 'avps'") def test_SbfdVccv_SetFlags(self): self.SbfdVccv.SetFlags(mustAvp=True, hiddenAvp=False) def test_SbfdVccv_decode(self): buff6 = "34" self.SbfdVccv.decode(buf=buff6) def test_SbfdVccv_ValidateFlags(self): self.SbfdVccv.ValidateFlags(mustAvp=True, hiddenAvp=False) self.assertEqual(self.SbfdVccv.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_FailoverCapability(self): try: self.FailoverCapability = FailoverCapability(failoverCapofCC=123, failoverCapofDC=456, recoveryTime=0, hiddenAvp=666, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") try: self.FailoverCapability = FailoverCapability(failoverCapofCC=False, failoverCapofDC=False, recoveryTime=0, hiddenAvp=False, attrValue=None) except Exception as e: self.assertEqual(str(e), "failoverCapofCC and failoverCapofDC can't be false at the same time") # attrValue is Not None self.FailoverCapability = FailoverCapability(failoverCapofCC=True, failoverCapofDC=False, recoveryTime=0, hiddenAvp=False, attrValue="RFC4951") def test_FailoverCapability_handleAvp(self): self.assertEqual( self.FailoverCapability.handleAvp(pkt="RFC4951", retPak=None), True) # retPak is Not None try: self.FailoverCapability.handleAvp(pkt="RFC4951", retPak="wonderful") except Exception as e: pass def test_FailoverCapability_SetFlags(self): self.FailoverCapability.SetFlags(mustAvp=True, hiddenAvp=False) def test_FailoverCapability_decode(self): buff = struct.pack("!HI", 0x1, 0x0) self.FailoverCapability.decode(buf=buff) def test_FailoverCapability_ValidateFlags(self): self.assertEqual(self.FailoverCapability.ValidateFlags( mustAvp=False, hiddenAvp=False), True) def test_TunnelRecovery(self): # attrValue is Not None self.TunnelRecovery = TunnelRecovery( recoverTunnelID=1, recoverRemoteTunnelID=2, attrValue="RFC4951") def test_TunnelRecovery_handleAvp(self): self.assertEqual( self.TunnelRecovery.handleAvp(pkt="RFC4951", retPak="RFC4951"), True) def test_TunnelRecovery_SetFlags(self): self.TunnelRecovery.SetFlags(mustAvp=True, hiddenAvp=False) def test_TunnelRecovery_decode(self): buff = struct.pack("!HII", 0x0, 0x1, 0x2) self.TunnelRecovery.decode(buf=buff) def test_TunnelRecovery_ValidateFlags(self): self.assertEqual(self.TunnelRecovery.ValidateFlags( mustAvp=True, hiddenAvp=False), True) def test_SuggestedControlSequence(self): try: self.SuggestedControlSequence = SuggestedControlSequence( suggestedNs=0, suggestedNr=0, hiddenAvp=123, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.SuggestedControlSequence = SuggestedControlSequence( suggestedNs=0, suggestedNr=0, hiddenAvp=False, attrValue="RFC4951") def test_SuggestedControlSequence_handleAvp(self): self.assertEqual( self.SuggestedControlSequence.handleAvp(pkt="RFC4951", retPak="RFC4951"), True) def test_SuggestedControlSequence_SetFlags(self): self.SuggestedControlSequence.SetFlags(mustAvp=False, hiddenAvp=False) def test_SuggestedControlSequence_decode(self): buff = struct.pack("!HII", 0x0, 0x0, 0x0) self.SuggestedControlSequence.decode(buf=buff) def test_SuggestedControlSequence_ValidateFlags(self): self.assertEqual(self.SuggestedControlSequence.ValidateFlags( mustAvp=False, hiddenAvp=False), True) def test_FailoverSessionState(self): try: self.FailoverSessionState = FailoverSessionState( sessionID=1, remoteSessionID=2, hiddenAvp=123, attrValue=None) except Exception as e: self.assertEqual(str(e), "parameter type error") # attrValue is Not None self.FailoverSessionState = FailoverSessionState( sessionID=1, remoteSessionID=2, hiddenAvp=False, attrValue="RFC4951") def test_FailoverSessionState_handleAvp(self): try: self.FailoverSessionState.handleAvp(pkt="RFC4951", retPak="RFC4951") except Exception as e: pass def test_FailoverSessionState_SetFlags(self): self.FailoverSessionState.SetFlags(mustAvp=False, hiddenAvp=False) def test_FailoverSessionState_decode(self): buff = struct.pack("!HII", 0x0, 0x1, 0x2) self.FailoverSessionState.decode(buf=buff) def test_FailoverSessionState_ValidateFlags(self): self.assertEqual(self.FailoverSessionState.ValidateFlags( mustAvp=False, hiddenAvp=False), True)