コード例 #1
0
    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())
コード例 #2
0
    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)
コード例 #3
0
ファイル: testHsmsPackets.py プロジェクト: yecaokinux/secsgem
    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{")
コード例 #4
0
ファイル: testHsmsPackets.py プロジェクト: yecaokinux/secsgem
    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{")
コード例 #5
0
ファイル: testHsmsPackets.py プロジェクト: yecaokinux/secsgem
    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{")
コード例 #6
0
ファイル: testHsmsPackets.py プロジェクト: yecaokinux/secsgem
    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{")
コード例 #7
0
    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")
コード例 #8
0
    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')
コード例 #9
0
    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')
コード例 #10
0
ファイル: testSecsHandler.py プロジェクト: yecaokinux/secsgem
    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)
コード例 #11
0
ファイル: testSecsHandler.py プロジェクト: yecaokinux/secsgem
    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)
コード例 #12
0
    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)
コード例 #13
0
    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)))
コード例 #14
0
    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])))
コード例 #15
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")
コード例 #16
0
    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)
コード例 #17
0
    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)
コード例 #18
0
    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)
コード例 #19
0
    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)
コード例 #20
0
ファイル: testHsmsPackets.py プロジェクト: yecaokinux/secsgem
    def testConstructorWithoutHeader(self):
        packet = secsgem.HsmsPacket()

        self.assertEqual(packet.header.stream, 0)
        self.assertEqual(packet.header.function, 0)