def testDeselect(self): self.server.simulate_connect() packet = self.server.expect_packet(s_type=0x01) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x01) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectRspHeader(packet.header.system))) clientCommandThread = threading.Thread( target=self.client.send_deselect_req, name="TestHsmsHandlerActive_testDeselect") clientCommandThread.daemon = True # make thread killable on program termination clientCommandThread.start() packet = self.server.expect_packet(s_type=0x03) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x03) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsDeselectRspHeader(packet.header.system))) clientCommandThread.join(1) self.assertFalse(clientCommandThread.isAlive())
def testDeselectWhileDisconnecting(self): self.server.simulate_connect() system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x02) self.assertEqual(packet.header.sessionID, 0xffff) # set the connection to disconnecting by brute force self.client.connection.disconnecting = True system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsDeselectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x07) self.assertEqual(packet.header.sessionID, 0xffff)
def testEncodePacket(self): packet = secsgem.HsmsPacket( secsgem.hsms.packets.HsmsDeselectReqHeader(123)) self.assertEqual( packet.encode(), b"\x00\x00\x00\n\xff\xff\x00\x00\x00\x03\x00\x00\x00{")
def testEncodePacket(self): packet = secsgem.HsmsPacket( secsgem.hsms.packets.HsmsStreamFunctionHeader( 123, 1, 1, True, 100)) self.assertEqual(packet.encode(), b"\x00\x00\x00\n\x00d\x81\x01\x00\x00\x00\x00\x00{")
def testEncodePacket(self): packet = secsgem.HsmsPacket( secsgem.hsms.packets.HsmsRejectReqHeader(123, 1, 1)) self.assertEqual( packet.encode(), b"\x00\x00\x00\n\xff\xff\x01\x01\x00\x07\x00\x00\x00{")
def testEncodePacket(self): packet = secsgem.HsmsPacket( secsgem.hsms.packets.HsmsLinktestRspHeader(123)) self.assertEqual( packet.encode(), b"\x00\x00\x00\n\xff\xff\x00\x00\x00\x06\x00\x00\x00{")
def testReceivingS01F13(self): self.server.simulate_connect() system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x02) self.assertEqual(packet.header.sessionID, 0xffff) self.assertEqual(self.client.communicationState.current, "WAIT_CRA") packet = self.server.expect_packet(function=13) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x00) self.assertEqual(packet.header.sessionID, 0x0) self.assertEqual(packet.header.stream, 0x01) self.assertEqual(packet.header.function, 0x0d) self.assertEqual(self.client.communicationState.current, "WAIT_CRA") self.server.simulate_packet( self.server.generate_stream_function_packet( packet.header.system, secsgem.SecsS01F14([0]))) self.assertEqual(self.client.communicationState.current, "COMMUNICATING")
def testSelection(self): self.server.simulate_connect() self.server.simulate_packet(secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(self.server.get_next_system_counter()))) self.assertIsNotNone(self.server.expect_packet(s_type=2)) self.assertEqual(self.client.connectionState.state, 'CONNECTED_SELECTED')
def testSelection(self): self.server.simulate_connect() request_packet = self.server.expect_packet(s_type=1) self.assertIsNotNone(request_packet) self.server.simulate_packet(secsgem.HsmsPacket(secsgem.HsmsSelectRspHeader(request_packet.header.system))) self.assertEqual(self.client.connectionState.state, 'CONNECTED_SELECTED')
def testSecsDecodeInvalidFunction(self): server = HsmsTestServer() client = secsgem.SecsHandler("127.0.0.1", 5000, False, 0, "test", server) packet = secsgem.HsmsPacket() packet.header.function = 99 function = client.secs_decode(packet) self.assertIsNone(function)
def performSelect(self): # select system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x02) self.assertEqual(packet.header.sessionID, 0xffff)
def testLinktestWhileDisconnecting(self): self.server.simulate_connect() system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsLinktestReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x06) self.assertEqual(packet.header.sessionID, 0xffff)
def testSelect(self): self.server.simulate_connect() packet = self.server.expect_packet(s_type=0x01) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x01) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectRspHeader(packet.header.system)))
def establishCommunication(self): self.server.simulate_connect() system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) packet = self.server.expect_packet(function=13) self.server.simulate_packet( self.server.generate_stream_function_packet( packet.header.system, secsgem.SecsS01F14([0])))
def testConnection(self): self.server.simulate_connect() system_id = self.server.get_next_system_counter() self.server.simulate_packet( secsgem.HsmsPacket(secsgem.HsmsSelectReqHeader(system_id))) packet = self.server.expect_packet(system_id=system_id) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x02) self.assertEqual(packet.header.sessionID, 0xffff) self.assertEqual(self.client.communicationState.current, "WAIT_CRA")
def testSelectedDisconnect(self): self.server.simulate_connect() request_packet = self.server.expect_packet(s_type=1) self.assertIsNotNone(request_packet) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectRspHeader(request_packet.header.system))) self.server.simulate_disconnect() self.assertEqual( self.client.connectionState.state, secsgem.hsms.connectionstatemachine.STATE_NOT_CONNECTED)
def testSelectedDisconnect(self): self.server.simulate_connect() self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectReqHeader( self.server.get_next_system_counter()))) self.assertIsNotNone(self.server.expect_packet(s_type=2)) self.server.simulate_disconnect() self.assertEqual( self.client.connectionState.state, secsgem.hsms.connectionstatemachine.STATE_NOT_CONNECTED)
def testSecsPacketWithoutSecsDecode(self): self.server.simulate_connect() packet = self.server.expect_packet(s_type=0x01) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x01) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsSelectRspHeader(packet.header.system))) system_id = self.server.get_next_system_counter() self.server.simulate_packet( self.server.generate_stream_function_packet( system_id, secsgem.SecsS01F01())) print(self.client)
def testLinktestTimer(self): self.client.disable() self.client.linktestTimeout = 0.1 self.client.enable() self.server.simulate_connect() packet = self.server.expect_packet(s_type=0x05) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x05) self.assertEqual(packet.header.sessionID, 0xffff) self.server.simulate_packet( secsgem.HsmsPacket( secsgem.HsmsLinktestRspHeader(packet.header.system))) packet = self.server.expect_packet(s_type=0x05) self.assertIsNot(packet, None) self.assertEqual(packet.header.sType, 0x05) self.assertEqual(packet.header.sessionID, 0xffff)
def testConstructorWithoutHeader(self): packet = secsgem.HsmsPacket() self.assertEqual(packet.header.stream, 0) self.assertEqual(packet.header.function, 0)