def test_setup(self, mock_get, mock_post): mock_post.side_effect = [ mocked_requests_config_post(), mocked_requests_job_post() ] mock_get.side_effect = [ mocked_requests_config_get(), mocked_requests_job_get() ] options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workload": "rs", "StorPerf_ip": "192.168.23.2", "query_interval": 0, "timeout": 60 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) s.setup() self.assertTrue(s.setup_done)
def test_successful_run(self, mock_post, mock_get, mock_delete): options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workload": "rs", "StorPerf_ip": "192.168.23.2", "query_interval": 0, "timeout": 60 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) s.setup_done = True sample_output = '{"Status": "Completed",\ "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}' expected_result = jsonutils.loads(sample_output) s.run(self.result) self.assertEqual(self.result, expected_result)
def test_setup_config_post_failed(self, mock_get, mock_post): mock_post.side_effect = mocked_requests_config_post_fail args = {"options": {"public_network": "foo"}} s = storperf.StorPerf(args, self.ctx) self.assertRaises(RuntimeError, s.setup)
def test_initialize_disks_post_failed(self, mock_post, mock_get, _): mock_post.side_effect = mocked_requests_initialize_post_fail mock_get.side_effect = mocked_requests_job_get args = {"options": {"StorPerf_ip": "192.168.23.2"}} s = storperf.StorPerf(args, self.ctx) self.assertRaises(RuntimeError, s.initialize_disks) mock_post.assert_called_once_with( 'http://192.168.23.2:5000/api/v1.0/initializations', json={})
def test_run_v2_successful(self, mock_post, mock_get): mock_post.side_effect = mocked_requests_job_post mock_get.side_effect = mocked_requests_job_get options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workloads": { "read_sequential": { "rw": "rs" } }, "StorPerf_ip": "192.168.23.2", "query_interval": 0, "timeout": 60 } expected_post = { 'metadata': { 'build_tag': 'latest', 'test_case': 'opnfv_yardstick_tc074' }, 'deadline': 60, 'block_sizes': 4096, 'queue_depths': 4, 'workloads': { 'read_sequential': { 'rw': 'rs' } }, 'agent_count': 8 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) s.setup_done = True sample_output = '{"Status": "Completed",\ "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}' expected_result = jsonutils.loads(sample_output) s.run(self.result) mock_post.assert_called_once_with( 'http://192.168.23.2:5000/api/v2.0/jobs', json=expected_post) self.assertEqual(self.result, expected_result)
def test_run_calls_setup(self, mock_setup, mock_post, mock_get, _): mock_post.side_effect = mocked_requests_job_post mock_get.side_effect = mocked_requests_job_get args = { "options": { 'timeout': 60, } } s = storperf.StorPerf(args, self.ctx) s.run(self.result) mock_setup.assert_called_once()
def test_failed_teardown(self, mock_delete): options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workload": "rs", "StorPerf_ip": "192.168.23.2", "query_interval": 10, "timeout": 60 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) self.assertRaises(AssertionError, s.teardown(), self.result)
def test_run_failed(self, mock_post, mock_get, _): mock_post.side_effect = mocked_requests_job_post_fail mock_get.side_effect = mocked_requests_job_get options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workloads": { "read_sequential": { "rw": "rs" } }, "StorPerf_ip": "192.168.23.2", "query_interval": 0, "timeout": 60 } expected_post = { 'metadata': { 'build_tag': 'latest', 'test_case': 'opnfv_yardstick_tc074' }, 'deadline': 60, 'block_sizes': 4096, 'queue_depths': 4, 'workloads': { 'read_sequential': { 'rw': 'rs' } }, 'agent_count': 8 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) s.setup_done = True self.assertRaises(RuntimeError, s.run, self.ctx) mock_post.assert_called_once_with( 'http://192.168.23.2:5000/api/v2.0/jobs', json=expected_post)
def test_successful_teardown(self, mock_delete): options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workload": "rs", "StorPerf_ip": "192.168.23.2", "query_interval": 10, "timeout": 60 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) s.teardown() self.assertFalse(s.setup_done)
def test_teardown_request_delete_failed(self, mock_delete): mock_delete.side_effect = mocked_requests_delete_failed options = { "agent_count": 8, "public_network": 'ext-net', "volume_size": 10, "block_sizes": 4096, "queue_depths": 4, "workload": "rs", "StorPerf_ip": "192.168.23.2", "query_interval": 10, "timeout": 60 } args = {"options": options} s = storperf.StorPerf(args, self.ctx) self.assertRaises(RuntimeError, s.teardown) mock_delete.assert_called_once_with( 'http://192.168.23.2:5000/api/v1.0/configurations')
def test_query_setup_state_no_payload(self, mock_get): mock_get.side_effect = mocked_requests_config_get_no_payload args = {"options": {}} s = storperf.StorPerf(args, self.ctx) result = s._query_setup_state() self.assertFalse(result)