def test_offset(self): """ Test that, if the server's BEGIN_CONTENT message specifies an offset, the file to be uploaded is seek'ed to the right position. """ offset = 23 mocker = Mocker() transport = mocker.mock() transport.registerProducer(ANY, streaming=True) transport.write(ANY) mocker.count(1, None) # I don't really care how many times fd = mocker.mock() fd.seek(offset) # this is really all I care about fd.read(ANY) mocker.result('') mocker.replay() protocol = StorageClient() protocol.transport = transport pc = PutContent(protocol, 'share', 'node', '', '', 0, 0, 0, fd) message = protocol_pb2.Message() message.type = protocol_pb2.Message.BEGIN_CONTENT message.begin_content.offset = offset pc.start() pc.processMessage(message)
def test_server_upload_id_none(self): """Test that if there is no upload_id we ignore it.""" called = [] pc = PutContent(self.protocol, 'share', 'node', '', '', 0, 0, 0, StringIO(''), upload_id_cb=called.append) message = protocol_pb2.Message() message.type = protocol_pb2.Message.BEGIN_CONTENT pc.start() pc.processMessage(message) self.assertEqual(len(called), 0)
def test_server_upload_id(self): """Test that, if the server specify an upload_id, we save it.""" upload_id = "foo" called = [] pc = PutContent(self.protocol, 'share', 'node', '', '', 0, 0, 0, StringIO(''), upload_id_cb=lambda *a: called.append(a)) message = protocol_pb2.Message() message.type = protocol_pb2.Message.BEGIN_CONTENT message.begin_content.upload_id = upload_id message.begin_content.offset = 0 pc.start() pc.processMessage(message) self.assertEqual(len(called), 1) self.assertEqual(called[0], ('foo', 0))
def test_callback(self): """Test that, if the server specify an offset, we call back with it.""" upload_id = 'foo' offset = 123456 called = [] pc = PutContent(self.protocol, 'share', 'node', '', '', 0, 0, 0, StringIO(''), upload_id_cb=lambda *a: called.append(a)) message = protocol_pb2.Message() message.type = protocol_pb2.Message.BEGIN_CONTENT message.begin_content.upload_id = upload_id message.begin_content.offset = offset pc.start() pc.processMessage(message) self.assertEqual(len(called), 1) self.assertEqual(called[0], (upload_id, offset))
def test_server_upload_id_no_cb(self): """Test that, if the server specify an upload_id, we save it. Only if we have the upload_id_cb defined. """ offset = 23 # just to check something mocker = Mocker() fd = mocker.mock() fd.seek(offset) # this is really all I care about fd.read(ANY) mocker.result('') mocker.replay() upload_id = "foo" pc = PutContent(self.protocol, 'share', 'node', '', '', 0, 0, 0, fd) message = protocol_pb2.Message() message.type = protocol_pb2.Message.BEGIN_CONTENT message.begin_content.upload_id = upload_id message.begin_content.offset = offset pc.start() pc.processMessage(message)