Merge "make microversion a client level construct for tests"

This commit is contained in:
Jenkins
2016-02-25 00:11:59 +00:00
committed by Gerrit Code Review
10 changed files with 51 additions and 59 deletions

View File

@@ -124,6 +124,7 @@ class TestOpenStackClient(object):
self.auth_key = auth_key
self.auth_uri = auth_uri
self.project_id = project_id
self.microversion = None
def request(self, url, method='GET', body=None, headers=None):
_headers = {'Content-Type': 'application/json'}
@@ -167,6 +168,8 @@ class TestOpenStackClient(object):
headers = kwargs.setdefault('headers', {})
headers['X-Auth-Token'] = auth_result['x-auth-token']
if self.microversion:
headers['X-OpenStack-Nova-API-Version'] = self.microversion
response = self.request(full_uri, **kwargs)

View File

@@ -38,7 +38,7 @@ class FixedIpTest(test_servers.ServersSampleBase):
def setUp(self):
super(FixedIpTest, self).setUp()
self.api.microversion = self.microversion
instance = dict(test_utils.get_test_instance(),
hostname='openstack', host='host')
fake_fixed_ips = [{'id': 1,
@@ -95,15 +95,13 @@ class FixedIpTest(test_servers.ServersSampleBase):
def test_fixed_ip_reserve(self):
# Reserve a Fixed IP.
response = self._do_post('os-fixed-ips/192.168.1.1/action',
'fixedip-post-req', {},
api_version=self.microversion)
'fixedip-post-req', {})
self.assertEqual(202, response.status_code)
self.assertEqual("", response.content)
def _test_get_fixed_ip(self, **kwargs):
# Return data about the given fixed ip.
response = self._do_get('os-fixed-ips/192.168.1.1',
api_version=self.microversion)
response = self._do_get('os-fixed-ips/192.168.1.1')
project = {'cidr': '192.168.1.0/24',
'hostname': 'openstack',
'host': 'host',

View File

@@ -47,6 +47,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def setUp(self):
super(ServerActionsSampleJsonTest, self).setUp()
self.api.microversion = self.microversion
self.actions = fake_server_actions.FAKE_ACTIONS
self.events = fake_server_actions.FAKE_EVENTS
self.instance = test_utils.get_test_instance(obj=True)
@@ -79,8 +80,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
fake_action = self.actions[fake_uuid][fake_request_id]
response = self._do_get('servers/%s/os-instance-actions/%s' %
(fake_uuid, fake_request_id),
api_version=self.microversion)
(fake_uuid, fake_request_id))
subs = {}
subs['action'] = '(reboot)|(resize)'
subs['instance_uuid'] = str(fake_uuid)
@@ -93,8 +93,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_instance_actions_list(self):
fake_uuid = fake_server_actions.FAKE_UUID
response = self._do_get('servers/%s/os-instance-actions' % (fake_uuid),
api_version=self.microversion)
response = self._do_get('servers/%s/os-instance-actions' % (fake_uuid))
subs = {}
subs['action'] = '(reboot)|(resize)'
subs['integer_id'] = '[0-9]+'

View File

@@ -39,6 +39,10 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
'nova.api.openstack.compute.contrib.keypairs.Keypairs')
return f
def setUp(self):
super(KeyPairsSampleJsonTest, self).setUp()
self.api.microversion = self.microversion
# TODO(sdague): this is only needed because we randomly choose the
# uuid each time.
def generalize_subs(self, subs, vanilla_regexes):
@@ -52,8 +56,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
"""Get api sample of key pairs post request."""
key_name = 'keypair-' + str(uuid.uuid4())
subs = dict(keypair_name=key_name, **kwargs)
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
api_version=self.microversion)
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
subs = {'keypair_name': key_name}
self._verify_response('keypairs-post-resp', subs, response,
@@ -77,31 +80,28 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
params['public_key'] = public_key
params.update(**kwargs)
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
params, api_version=self.microversion)
params)
self._verify_response('keypairs-import-post-resp', subs, response,
self.expected_post_status_code)
def test_keypairs_list(self):
# Get api sample of key pairs list request.
key_name = self.test_keypairs_post()
response = self._do_get('os-keypairs',
api_version=self.microversion)
response = self._do_get('os-keypairs')
subs = {'keypair_name': key_name}
self._verify_response('keypairs-list-resp', subs, response, 200)
def test_keypairs_get(self):
# Get api sample of key pairs get request.
key_name = self.test_keypairs_post()
response = self._do_get('os-keypairs/%s' % key_name,
api_version=self.microversion)
response = self._do_get('os-keypairs/%s' % key_name)
subs = {'keypair_name': key_name}
self._verify_response('keypairs-get-resp', subs, response, 200)
def test_keypairs_delete(self):
# Get api sample of key pairs delete request.
key_name = self.test_keypairs_post()
response = self._do_delete('os-keypairs/%s' % key_name,
api_version=self.microversion)
response = self._do_delete('os-keypairs/%s' % key_name)
self.assertEqual(self.expected_delete_status_code,
response.status_code)
@@ -128,8 +128,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
def test_keypairs_post_invalid(self):
key_name = 'keypair-' + str(uuid.uuid4())
subs = dict(keypair_name=key_name, keypair_type='fakey_type')
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
api_version=self.microversion)
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
self.assertEqual(400, response.status_code)
@@ -154,7 +153,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
'public_key': fake_crypto.get_ssh_public_key()
}
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
subs, api_version=self.microversion)
subs)
self.assertEqual(400, response.status_code)
@@ -203,8 +202,7 @@ class KeyPairsV210SampleJsonTest(KeyPairsSampleJsonTest):
'user_id': "fake"
}
key_name = self._check_keypairs_post(**subs)
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name,
api_version=self.microversion)
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name)
self.assertEqual(self.expected_delete_status_code,
response.status_code)
@@ -222,8 +220,6 @@ class KeyPairsV210SampleJsonTestNotAdmin(KeyPairsV210SampleJsonTest):
subs = dict(keypair_name=key_name,
keypair_type=keypair_obj.KEYPAIR_TYPE_SSH,
user_id='fake1')
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
api_version=self.microversion,
)
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
self.assertEqual(403, response.status_code)

View File

@@ -23,6 +23,7 @@ CONF.import_opt('osapi_compute_extension',
class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
microversion = None
extension_name = "os-remote-consoles"
def _get_flags(self):
@@ -34,6 +35,7 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
def setUp(self):
super(ConsolesSampleJsonTests, self).setUp()
self.api.microversion = self.microversion
self.flags(enabled=True, group='vnc')
self.flags(enabled=True, group='spice')
self.flags(enabled=True, group='rdp')
@@ -96,8 +98,7 @@ class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
body = {'protocol': 'vnc', 'type': 'novnc'}
response = self._do_post('servers/%s/remote-consoles' % uuid,
'create-vnc-console-req', body,
api_version='2.6')
'create-vnc-console-req', body)
subs = {"url": self.http_regex}
self._verify_response('create-vnc-console-resp', subs, response, 200)
@@ -117,7 +118,6 @@ class ConsolesV28SampleJsonTests(test_servers.ServersSampleBase):
body = {'protocol': 'mks', 'type': 'webmks'}
response = self._do_post('servers/%s/remote-consoles' % uuid,
'create-mks-console-req', body,
api_version='2.8')
'create-mks-console-req', body)
subs = {"url": self.http_regex}
self._verify_response('create-mks-console-resp', subs, response, 200)

View File

@@ -30,6 +30,7 @@ class ServerMigrationsSampleJsonTest(test_servers.ServersSampleBase):
"""setUp method for server usage."""
super(ServerMigrationsSampleJsonTest, self).setUp()
self.uuid = self._post_server()
self.api.microversion = '2.22'
@mock.patch.object(conductor_manager.ComputeTaskManager, '_live_migrate')
@mock.patch.object(db, 'service_get_by_compute_host')
@@ -47,6 +48,5 @@ class ServerMigrationsSampleJsonTest(test_servers.ServersSampleBase):
self._do_post('servers/%s/action' % self.uuid, 'live-migrate-server',
{'hostname': self.compute.host})
response = self._do_post('servers/%s/migrations/%s/action'
% (self.uuid, '3'), 'force_complete',
{}, api_version='2.22')
% (self.uuid, '3'), 'force_complete', {})
self.assertEqual(202, response.status_code)

View File

@@ -69,6 +69,10 @@ class ServersSampleJsonTest(ServersSampleBase):
sample_dir = 'servers'
microversion = None
def setUp(self):
super(ServersSampleJsonTest, self).setUp()
self.api.microversion = self.microversion
def _get_flags(self):
f = super(ServersSampleBase, self)._get_flags()
f['osapi_compute_extension'] = CONF.osapi_compute_extension[:]
@@ -86,8 +90,7 @@ class ServersSampleJsonTest(ServersSampleBase):
def test_servers_get(self):
uuid = self.test_servers_post()
response = self._do_get('servers/%s' % uuid,
api_version=self.microversion)
response = self._do_get('servers/%s' % uuid)
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
@@ -99,15 +102,13 @@ class ServersSampleJsonTest(ServersSampleBase):
def test_servers_list(self):
uuid = self._post_server()
response = self._do_get('servers',
api_version=self.microversion)
response = self._do_get('servers')
subs = {'id': uuid}
self._verify_response('servers-list-resp', subs, response, 200)
def test_servers_details(self):
uuid = self.test_servers_post()
response = self._do_get('servers/detail',
api_version=self.microversion)
response = self._do_get('servers/detail')
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
@@ -349,7 +350,6 @@ class ServerTriggerCrashDumpJsonTest(ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'server-action-trigger-crash-dump',
{},
api_version=self.microversion)
{})
self.assertEqual(response.status_code, 202)
self.assertEqual(response.content, "")

View File

@@ -44,6 +44,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def setUp(self):
super(ServicesJsonTest, self).setUp()
self.api.microversion = self.microversion
self.stub_out("nova.db.service_get_all",
test_services.fake_db_api_service_get_all)
self.stub_out("nova.db.service_get_by_host_and_binary",
@@ -54,8 +55,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_services_list(self):
"""Return a list of all agent builds."""
response = self._do_get('os-services',
api_version=self.microversion)
response = self._do_get('os-services')
subs = {'binary': 'nova-compute',
'host': 'host1',
'zone': 'nova',
@@ -68,8 +68,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = {"host": "host1",
'binary': 'nova-compute'}
response = self._do_put('os-services/enable',
'service-enable-put-req', subs,
api_version=self.microversion)
'service-enable-put-req', subs)
self._verify_response('service-enable-put-resp', subs, response, 200)
def test_service_disable(self):
@@ -77,8 +76,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = {"host": "host1",
'binary': 'nova-compute'}
response = self._do_put('os-services/disable',
'service-disable-put-req', subs,
api_version=self.microversion)
'service-disable-put-req', subs)
self._verify_response('service-disable-put-resp', subs, response, 200)
def test_service_disable_log_reason(self):
@@ -87,15 +85,13 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
'binary': 'nova-compute',
'disabled_reason': 'test2'}
response = self._do_put('os-services/disable-log-reason',
'service-disable-log-put-req', subs,
api_version=self.microversion)
'service-disable-log-put-req', subs)
self._verify_response('service-disable-log-put-resp',
subs, response, 200)
def test_service_delete(self):
"""Delete an existing service."""
response = self._do_delete('os-services/1',
api_version=self.microversion)
response = self._do_delete('os-services/1')
self.assertEqual(204, response.status_code)
self.assertEqual("", response.content)
@@ -108,8 +104,7 @@ class ServicesV211JsonTest(ServicesJsonTest):
def test_services_list(self):
"""Return a list of all agent builds."""
response = self._do_get('os-services',
api_version=self.microversion)
response = self._do_get('os-services')
subs = {'binary': 'nova-compute',
'host': 'host1',
'zone': 'nova',
@@ -124,7 +119,6 @@ class ServicesV211JsonTest(ServicesJsonTest):
'binary': 'nova-compute',
'forced_down': 'true'}
response = self._do_put('os-services/force-down',
'service-force-down-put-req', subs,
api_version=self.microversion)
'service-force-down-put-req', subs)
self._verify_response('service-force-down-put-resp', subs,
response, 200)

View File

@@ -56,9 +56,8 @@ class TestServiceUpdateNotificationSample(
body = {'host': 'host1',
'binary': 'nova-compute',
'forced_down': True}
self.admin_api.api_put('os-services/force-down',
body,
api_version='2.12')
self.admin_api.microversion = '2.12'
self.admin_api.api_put('os-services/force-down', body)
self._verify_notification('service-update',
replacements={'forced_down': True,
'disabled': True,

View File

@@ -67,10 +67,13 @@ class InstanceActionsTestV21(InstanceActionsTestV2):
class InstanceActionsTestV221(InstanceActionsTestV21):
microversion = '2.21'
def setUp(self):
super(InstanceActionsTestV221, self).setUp()
self.api.microversion = self.microversion
def test_get_instance_actions_deleted(self):
server = self._create_server()
self._delete_server(server['id'])
actions = self.api.get_instance_actions(server['id'],
api_version=self.microversion)
actions = self.api.get_instance_actions(server['id'])
self.assertEqual('delete', actions[0]['action'])
self.assertEqual('create', actions[1]['action'])