Exemplo n.º 1
0
    def run(self, network, address, source_file, transfer_id, timeout):
        self.progress = 0

        while self.is_running:
            data = source_file.read(Network.STREAM_DATA_SIZE)

            d = {
                JSONKeys.TRANSFER_ID: transfer_id,
                JSONKeys.TRANSFER_DATA: bytes_to_b64(data),
            }

            if data:
                future = network.send(address, d, timeout)
                data_packet = future.result()

                if data_packet and data_packet.dict_obj.get(
                JSONKeys.TRANSFER_ID) == transfer_id:
                    self.progress += len(data)
            else:
                d[JSONKeys.TRANSFER_DATA] = None

                network.send(address, d)

                break

        return self.progress
Exemplo n.º 2
0
 def test_conversion(self):
     self.assertEqual(bytes_to_b64(b'\xdd'), '3Q==')
     self.assertEqual(bytes_to_b32(b'\xdd'), '3U======')
     self.assertEqual(bytes_to_b16(b'\xdd'), 'DD')
     self.assertEqual(b64_to_bytes('3Q=='), b'\xdd')
     self.assertEqual(b32_to_bytes('3U======'), b'\xdd')
     self.assertEqual(b16_to_bytes('DD'), b'\xdd')
Exemplo n.º 3
0
    def new_sequence_id(self):
        '''Generate a new sequence ID.

        :rtype: ``str``
        '''

        return bytes_to_b64(os.urandom(Network.SEQUENCE_ID_SIZE))