def test_responding_to_file_request_message_for_huge_file(self): print(file_util.get_file_size('./huge_file.txt')) another_peer = Peer(22, "127.33.21.22", 3233, False) message = putils.create_file_request_message( self.business_layer.get_myself(), receiver=another_peer, path='./huge_file.txt') _run(self.lower[0].put(message)) chunk1 = _run(self.lower[1].get()) chunk2 = _run(self.lower[1].get()) file_size = file_util.get_file_size('./huge_file.txt') binary_data1 = file_util.get_file_binary_data('./huge_file.txt', 8192) binary_data2 = file_util.get_file_binary_data('./huge_file.txt')[8192:] self.assertEqual( chunk1.fileChunk.fileName, './huge_file.txt' + '.{}'.format(self.business_layer.get_myself().id)) self.assertEqual(chunk1.fileChunk.fileSize, file_size) self.assertEqual(chunk1.fileChunk.ordinal, 0) self.assertEqual(chunk1.fileChunk.data, binary_data1) self.assertEqual( chunk2.fileChunk.fileName, './huge_file.txt' + '.{}'.format(self.business_layer.get_myself().id)) self.assertEqual(chunk2.fileChunk.fileSize, file_size) self.assertEqual(chunk2.fileChunk.ordinal, 1) self.assertEqual(chunk2.fileChunk.data, binary_data2) self.assertEqual(chunk1.fileChunk.uuid, chunk2.fileChunk.uuid)
def test_write_binary_data(self): data = b'0101101011010100100101010' file_util.write_file_from_binary_data(data=data, path='./test_file2') file_binary_data = file_util.get_file_binary_data("./test_file2") self.assertEqual(file_binary_data, b'0101101011010100100101010') data = file_util.get_file_binary_data('./test_file.txt') file_util.write_file_from_binary_data(data=data, path='./test_file2') data2 = file_util.get_file_binary_data('./test_file2') self.assertEqual(data2, data)
def test_handling_file_chunks_message(self): print(file_util.get_file_size('./huge_file.txt')) another_peer = Peer(22, "127.33.21.22", 3233, False) message = putils.create_file_request_message( self.business_layer.get_myself(), receiver=another_peer, path='./huge_file.txt') _run(self.lower[0].put(message)) chunk1 = _run(self.lower[1].get()) chunk2 = _run(self.lower[1].get()) _run(self.lower[0].put(chunk1)) _run(self.lower[0].put(chunk2)) _run(asyncio.sleep(4)) true_binary_data = file_util.get_file_binary_data('./huge_file.txt') binary_data = file_util.get_file_binary_data( path='./huge.file.txt.{}'.format( self.business_layer.get_myself().id)) self.assertEqual(binary_data, true_binary_data)
def test_responding_to_file_request_message(self): another_peer = Peer(22, "127.33.21.22", 3233, False) message = putils.create_file_request_message( self.business_layer.get_myself(), receiver=another_peer, path='./test_file.txt') _run(self.lower[0].put(message)) response_message = _run(self.lower[1].get()) file_size = file_util.get_file_size('./test_file.txt') binary_data = file_util.get_file_binary_data('./test_file.txt') self.assertEqual( response_message.fileChunk.fileName, './test_file.txt' + '.{}'.format(self.business_layer.get_myself().id)) self.assertEqual(response_message.fileChunk.fileSize, file_size) self.assertEqual(response_message.fileChunk.ordinal, 0) self.assertEqual(response_message.fileChunk.data, binary_data)
def test_get_binary_data(self): file_binary_data = file_util.get_file_binary_data("./test_file.txt") with open('./test_file.txt', 'rb') as file: file_data = file.read() self.assertEqual(file_binary_data, file_data)