def test_with_different_message_types(self): msg_list = [ messages.Message(20, bytearray(b'\x20')), messages.Message(30, bytearray(b'\x10')) ] msg_gen = FlushMessageList(msg_list) with self.assertRaises(AssertionError): msg_gen.generate(None)
def test_with_message_list(self): msg_list = [] msg_gen = PopMessageFromList(msg_list) msg_list.append(messages.Message(20, bytearray(b'\x20\x30'))) msg_list.append(messages.Message(21, bytearray(b'\x30\x20'))) msg = msg_gen.generate(None) self.assertEqual(msg.contentType, 20) self.assertEqual(msg.write(), bytearray(b'\x20\x30')) self.assertEqual(len(msg_list), 1)
def test_with_message_list(self): msg_list = [] msg_gen = FlushMessageList(msg_list) self.assertEqual(msg_list, []) msg_list.append(messages.Message(20, bytearray(b'\x20\x30'))) msg_list.append(messages.Message(20, bytearray(b'\x60\x70'))) msg = msg_gen.generate(None) self.assertEqual(msg.contentType, 20) self.assertEqual(msg.write(), bytearray(b'\x20\x30\x60\x70')) self.assertEqual(msg_list, [])
def test_run_with_expect_node(self): node = mock.MagicMock() node.is_command = mock.Mock(return_value=False) node.is_expect = mock.Mock(return_value=True) node.is_generator = mock.Mock(return_value=False) node.get_all_siblings = mock.Mock(return_value=[node]) node.is_match = mock.Mock(return_value=True) node.child = None runner = Runner(node) runner.state.msg_sock = mock.MagicMock() msg = (mock.MagicMock(name="header"), mock.MagicMock(name="parser")) runner.state.msg_sock.recvMessageBlocking = mock.Mock(return_value=msg) runner.run() internal_message = messages.Message(msg[0].type, msg[1].bytes) node.is_match.called_once_with(internal_message) node.process.called_once_with(runner.state, internal_message)