Example #1
0
    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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
 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)
Example #6
0
    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])
Example #7
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)