def test_handle_get_object(self): object_info = { 'type': ssbench.READ_OBJECT, 'container': 'Document', 'name': 'SuperObject', 'size': 483213, } self.mock_worker.should_receive( 'ignoring_http_responses', ).with_args( (404, 503), client.get_object, object_info, resp_chunk_size=65536, toss_body=True, ).and_return(({ 'x-swiftstack-first-byte-latency': 5.33, 'x-swiftstack-last-byte-latency': 9.99, 'x-trans-id': 'bies', }, ['object_data'])).once self.mock_queue.should_receive('put').with_args( yaml.dump(worker.add_dicts(object_info, worker_id=self.worker_id, completed_at=self.stub_time, trans_id='bies', first_byte_latency=5.33, last_byte_latency=9.99)), ).once self.mock_worker.handle_get_object(object_info)
def test_handle_upload_object(self): object_name = '/foo/bar/SP000001' object_info = { 'type': ssbench.CREATE_OBJECT, 'container': 'Picture', 'name': object_name, 'size': 99000, } self.mock_worker.should_receive( 'ignoring_http_responses' ).with_args( (503,), client.put_object, object_info, content_length=99000, contents=worker.ChunkedReader('A', 99000), ).and_return({ 'x-swiftstack-first-byte-latency': 0.492393, 'x-swiftstack-last-byte-latency': 8.23283, 'x-trans-id': 'abcdef', }).once self.time_expectation.once self.mock_queue.should_receive('put').with_args( yaml.dump(worker.add_dicts(object_info, worker_id=self.worker_id, first_byte_latency=0.492393, last_byte_latency=8.23283, trans_id='abcdef', completed_at=self.stub_time)), ).once self.mock_worker.handle_upload_object(object_info)
def test_handle_update_object(self): object_info = { 'type': ssbench.UPDATE_OBJECT, 'container': 'Picture', 'name': 'BestObjEvar', 'size': 483213, } self.mock_worker.should_receive( 'ignoring_http_responses', ).with_args( (503,), client.put_object, object_info, content_length=483213, contents=worker.ChunkedReader('B', 483213), ).and_return({ 'x-swiftstack-first-byte-latency': 4.45, 'x-swiftstack-last-byte-latency': 23.283, 'x-trans-id': 'biejs', }).once self.mock_queue.should_receive('put').with_args( yaml.dump(worker.add_dicts(object_info, worker_id=self.worker_id, completed_at=self.stub_time, trans_id='biejs', first_byte_latency=4.45, last_byte_latency=23.283)), ).once self.mock_worker.handle_update_object(object_info)
def test_dispatching_value_error_exception(self): info = {'type': ssbench.READ_OBJECT, 'container': 'fun', 'a': 2} self.mock_worker.should_receive('handle_get_object').with_args(info).and_raise( ValueError('ve'), ).once self.mock_queue.should_receive('put').with_args( yaml.dump(worker.add_dicts(info, worker_id=self.worker_id, completed_at=self.stub_time, exception=repr(ValueError('ve')))), ).once self.mock_worker.handle_job(info)
def test_dispatching_socket_exception(self): info = {'type': ssbench.CREATE_OBJECT, 'a': 1} self.mock_worker.should_receive('handle_upload_object').with_args(info).and_raise( socket.error('slap happy') ).once self.mock_queue.should_receive('put').with_args( yaml.dump(worker.add_dicts(info, worker_id=self.worker_id, completed_at=self.stub_time, exception=repr(socket.error('slap happy')))), ).once self.mock_worker.handle_job(info)
def test_dispatching_value_error_exception(self): info = {'type': ssbench.READ_OBJECT, 'container': 'fun', 'a': 2} self.mock_worker.should_receive('handle_get_object').with_args(info).and_raise( ValueError('ve'), ).once got = [] self.result_queue.should_receive('put').replace_with( lambda value: got.append(value)).once self.mock_worker.handle_job(info) assert_equal(1, len(got), repr(got)) traceback = got[0].pop('traceback') assert_true(traceback.startswith('Traceback'), 'Traceback did not start with Traceback: %s' % traceback) assert_equal( worker.add_dicts( info, worker_id=self.worker_id, completed_at=self.stub_time, exception=repr(ValueError('ve'))), got[0])
def test_handle_delete_object(self): object_info = { 'type': ssbench.DELETE_OBJECT, 'container': 'Document', 'name': 'some name', } self.mock_worker.should_receive( 'ignoring_http_responses', ).with_args( (404, 503,), client.delete_object, object_info, ).and_return({ 'x-swiftstack-first-byte-latency': 0.94932, 'x-swiftstack-last-byte-latency': 8.3273, 'x-trans-id': '9bjkk', }).once self.result_queue.should_receive('put').with_args( worker.add_dicts( object_info, worker_id=self.worker_id, first_byte_latency=0.94932, last_byte_latency=8.3273, trans_id='9bjkk', completed_at=self.stub_time), ).once self.mock_worker.handle_delete_object(object_info)