def test_piece_two_blocks(self): piece = Piece(fake_client, 1, 2**14 + 2, 'abcd', test_dir) self.assertEqual(piece.num_blocks, 2) self.assertTrue(piece.not_all_blocks_requested()) block = piece.get_next_block() self.assertTrue(piece.not_all_blocks_requested()) block = piece.get_next_block() self.assertEqual(block[1], 2**14, '2nd block should begin at byte 2**14') self.assertEqual(block[2], 2, '2nd block should have length 2') self.assertFalse(piece.not_all_blocks_requested())
def test_piece_one_block(self): piece = Piece(fake_client, 1, 2**14, 'abc', test_dir) self.assertEqual(piece.num_blocks, 1) self.assertTrue(piece.not_all_blocks_requested()) block_info = piece.get_next_block() self.assertEqual(block_info[0], 1) self.assertEqual(block_info[1], 0) self.assertEqual(block_info[2], 2**14) self.assertFalse(piece.not_all_blocks_requested())
def test_piece_one_short_block(self): piece = Piece(fake_client, 1, 2, 'abcd', test_dir) self.assertEqual(piece.num_blocks, 1) self.assertTrue(piece.not_all_blocks_requested()) block = piece.get_next_block() self.assertEqual(block[2], 2) (block_info, peer) = piece.get_next_block_and_peer_to_request() self.assertEqual(peer, None) self.assertEqual(block_info[0], 1) self.assertEqual(block_info[1], 0) self.assertEqual(block_info[2], 2**14) self.assertFalse(piece.not_all_blocks_requested())