def test_mark_retry(self): original_packet = packets.AcknowledgementPacket(3) conversation = TFTPConversation(self.client_host, self.client_port, StubResponseRouterTwo()) conversation.cached_packet = original_packet retry_packet = conversation.mark_retry() self.assertEqual(conversation.retries_made, 1) self.assertEqual(retry_packet, original_packet)
def test_out_of_lock_step_block_num(self): packet = packets.DataPacket(2, "") conversation = TFTPConversation(self.client_host, self.client_port, StubResponseRouterTwo()) conversation.cached_packet = "stub packet" conversation.state = tftp_conversation.WRITING conversation.current_block_num = 3 response_packet = conversation.handle_packet(packet) self.assertEqual(conversation.state, tftp_conversation.WRITING) self.assertEqual(response_packet.__class__, packets.NoOpPacket)
def test_illegal_packet_type_during_writing_state(self): packet = packets.AcknowledgementPacket(2) conversation = TFTPConversation(self.client_host, self.client_port, StubResponseRouterTwo()) conversation.cached_packet = "stub packet" conversation.state = tftp_conversation.WRITING conversation.read_buffer = StubReadBufferTwo() response_packet = conversation.handle_packet(packet) self.assertEqual(conversation.state, tftp_conversation.WRITING) self.assertEqual(response_packet.__class__, packets.ErrorPacket) self.assertEqual(response_packet.error_code, 0) self.assertEqual(conversation.cached_packet, "stub packet")