remove use of _get_regexes in samples tests

There was an exceptionally large amount of rote use of _get_regexes
throughout the samples tests, which doesn't provide any additional
explicitness in what's happening, and only couples the tests to the
base class in less useful ways.

Instead, when we call _verify_response, always also use the base
vanilla regexes for matching tests.

We also needed to add a few more variables to the list which always
need to be reset before testing against the static samples, because
uuids are often generated on the fly for the tests.

Lastly, test_keypairs needed some test specific surgery. It is so
highly normalized (with private test methods that take **kwargs) at
this point that it's not really clear that it's testing useful things
any more. This really needs denormalization.

Change-Id: I165b0f3aa2132373cb59982a5a5ded37b4fa1b52
This commit is contained in:
Sean Dague 2015-12-14 10:12:13 -05:00
parent 21f6f7b63a
commit 5ac81f47a4
60 changed files with 160 additions and 282 deletions

View File

@ -39,7 +39,6 @@ class AccessIPsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
return f
def _servers_post(self, subs):
subs.update(self._get_regexes())
response = self._do_post('servers', 'server-post-req', subs)
return self._verify_response('server-post-resp', subs, response, 202)

View File

@ -38,29 +38,25 @@ class AggregatesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
"aggregate_id": '(?P<id>\d+)'
}
response = self._do_post('os-aggregates', 'aggregate-post-req', subs)
subs.update(self._get_regexes())
return self._verify_response('aggregate-post-resp',
subs, response, 200)
def test_list_aggregates(self):
self.test_aggregate_create()
response = self._do_get('os-aggregates')
subs = self._get_regexes()
self._verify_response('aggregates-list-get-resp', subs, response, 200)
self._verify_response('aggregates-list-get-resp', {}, response, 200)
def test_aggregate_get(self):
agg_id = self.test_aggregate_create()
response = self._do_get('os-aggregates/%s' % agg_id)
subs = self._get_regexes()
self._verify_response('aggregates-get-resp', subs, response, 200)
self._verify_response('aggregates-get-resp', {}, response, 200)
def test_add_metadata(self):
agg_id = self.test_aggregate_create()
response = self._do_post('os-aggregates/%s/action' % agg_id,
'aggregate-metadata-post-req',
{'action': 'set_metadata'})
subs = self._get_regexes()
self._verify_response('aggregates-metadata-post-resp', subs,
self._verify_response('aggregates-metadata-post-resp', {},
response, 200)
def test_add_host(self):
@ -70,7 +66,6 @@ class AggregatesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
}
response = self._do_post('os-aggregates/%s/action' % aggregate_id,
'aggregate-add-host-post-req', subs)
subs.update(self._get_regexes())
self._verify_response('aggregates-add-host-post-resp', subs,
response, 200)
@ -81,7 +76,6 @@ class AggregatesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
}
response = self._do_post('os-aggregates/1/action',
'aggregate-remove-host-post-req', subs)
subs.update(self._get_regexes())
self._verify_response('aggregates-remove-host-post-resp',
subs, response, 200)
@ -89,6 +83,5 @@ class AggregatesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
aggregate_id = self.test_aggregate_create()
response = self._do_put('os-aggregates/%s' % aggregate_id,
'aggregate-update-post-req', {})
subs = self._get_regexes()
self._verify_response('aggregate-update-post-resp',
subs, response, 200)
{}, response, 200)

View File

@ -49,7 +49,6 @@ class AssistedVolumeSnapshotsJsonTests(test_servers.ServersSampleBase):
response = self._do_post("os-assisted-volume-snapshots",
"snapshot-create-assisted-req",
subs)
subs.update(self._get_regexes())
self._verify_response("snapshot-create-assisted-resp",
subs, response, 200)

View File

@ -165,7 +165,6 @@ class AttachInterfacesSampleJsonTest(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/os-interface'
% instance_uuid,
'attach-interfaces-create-req', subs)
subs.update(self._get_regexes())
self._verify_response('attach-interfaces-create-resp', subs,
response, 200)

View File

@ -40,8 +40,7 @@ class AvailabilityZoneJsonTest(test_servers.ServersSampleBase):
def test_availability_zone_detail(self):
response = self._do_get('os-availability-zone/detail')
subs = self._get_regexes()
self._verify_response('availability-zone-detail-resp', subs, response,
self._verify_response('availability-zone-detail-resp', {}, response,
200)
def test_availability_zone_post(self):

View File

@ -68,8 +68,7 @@ class BareMetalNodesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
v2_1_mock_get_irc.return_value = fake_client()
response = self._do_get('os-baremetal-nodes')
subs = self._get_regexes()
self._verify_response('baremetal-node-list-resp', subs, response, 200)
self._verify_response('baremetal-node-list-resp', {}, response, 200)
@mock.patch("nova.api.openstack.compute.baremetal_nodes"
"._get_ironic_client")
@ -81,5 +80,4 @@ class BareMetalNodesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
response = self._do_get('os-baremetal-nodes/'
'058d27fa-241b-445a-a386-08c04f96db43')
subs = self._get_regexes()
self._verify_response('baremetal-node-get-resp', subs, response, 200)
self._verify_response('baremetal-node-get-resp', {}, response, 200)

View File

@ -77,18 +77,15 @@ class CellsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
# Override this
self._stub_cells(num_cells=0)
response = self._do_get('os-cells')
subs = self._get_regexes()
self._verify_response('cells-list-empty-resp', subs, response, 200)
self._verify_response('cells-list-empty-resp', {}, response, 200)
def test_cells_list(self):
response = self._do_get('os-cells')
subs = self._get_regexes()
self._verify_response('cells-list-resp', subs, response, 200)
self._verify_response('cells-list-resp', {}, response, 200)
def test_cells_get(self):
response = self._do_get('os-cells/cell3')
subs = self._get_regexes()
self._verify_response('cells-get-resp', subs, response, 200)
self._verify_response('cells-get-resp', {}, response, 200)
def test_get_cell_capacity(self):
self._mock_cell_capacity()
@ -96,16 +93,14 @@ class CellsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
my_state = state_manager.get_my_state()
response = self._do_get('os-cells/%s/capacities' %
my_state.name)
subs = self._get_regexes()
return self._verify_response('cells-capacities-resp',
subs, response, 200)
{}, response, 200)
def test_get_all_cells_capacity(self):
self._mock_cell_capacity()
response = self._do_get('os-cells/capacities')
subs = self._get_regexes()
return self._verify_response('cells-capacities-resp',
subs, response, 200)
{}, response, 200)
def _mock_cell_capacity(self):
self.mox.StubOutWithMock(self.cells.manager.state_manager,

View File

@ -47,10 +47,8 @@ class CertificatesSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_create_certificates(self):
response = self._do_post('os-certificates',
'certificate-create-req', {})
subs = self._get_regexes()
self._verify_response('certificate-create-resp', subs, response, 200)
self._verify_response('certificate-create-resp', {}, response, 200)
def test_get_root_certificate(self):
response = self._do_get('os-certificates/root')
subs = self._get_regexes()
self._verify_response('certificate-get-root-resp', subs, response, 200)
self._verify_response('certificate-get-root-resp', {}, response, 200)

View File

@ -64,21 +64,17 @@ class CloudPipeSampleTest(api_sample_base.ApiSampleTestBaseV21):
def test_cloud_pipe_create(self):
# Get api samples of cloud pipe extension creation.
self.flags(vpn_image_id=fake.get_valid_image_id())
project = {'project_id': str(uuid_lib.uuid4().hex)}
subs = {'project_id': str(uuid_lib.uuid4().hex)}
response = self._do_post('os-cloudpipe', 'cloud-pipe-create-req',
project)
subs = self._get_regexes()
subs.update(project)
subs)
subs['image_id'] = CONF.vpn_image_id
self._verify_response('cloud-pipe-create-resp', subs, response, 200)
return project
return subs
def test_cloud_pipe_list(self):
# Get api samples of cloud pipe extension get request.
project = self.test_cloud_pipe_create()
subs = self.test_cloud_pipe_create()
response = self._do_get('os-cloudpipe')
subs = self._get_regexes()
subs.update(project)
subs['image_id'] = CONF.vpn_image_id
self._verify_response('cloud-pipe-get-resp', subs, response, 200)

View File

@ -50,7 +50,7 @@ class ConfigDriveSampleJsonTest(test_servers.ServersSampleBase):
def test_config_drive_show(self):
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
# config drive can be a string for True or empty value for False
subs['cdrive'] = '.*'
@ -62,7 +62,7 @@ class ConfigDriveSampleJsonTest(test_servers.ServersSampleBase):
def test_config_drive_detail(self):
self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
# config drive can be a string for True or empty value for False
subs['cdrive'] = '.*'

View File

@ -58,7 +58,7 @@ class ConsoleAuthTokensSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_get('os-console-auth-tokens/%s' % token)
subs = self._get_regexes()
subs = {}
subs["uuid"] = uuid
subs["host"] = r"[\w\.\-]+"
subs["port"] = "[0-9]+"

View File

@ -37,5 +37,4 @@ class ConsoleOutputSampleJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server()
response = self._do_post('servers/%s/action' % uuid,
'console-output-post-req', {})
subs = self._get_regexes()
self._verify_response('console-output-post-resp', subs, response, 200)
self._verify_response('console-output-post-resp', {}, response, 200)

View File

@ -46,8 +46,7 @@ class ConsolesSamplesJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server()
self._create_consoles(uuid)
response = self._do_get('servers/%s/consoles/1' % uuid)
subs = self._get_regexes()
self._verify_response('consoles-get-resp', subs, response, 200)
self._verify_response('consoles-get-resp', {}, response, 200)
def test_console_delete(self):
uuid = self._post_server()

View File

@ -45,7 +45,7 @@ class DiskConfigJsonTest(test_servers.ServersSampleBase):
def test_list_servers_detail(self):
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = ''
subs['access_ip_v6'] = ''
@ -55,7 +55,7 @@ class DiskConfigJsonTest(test_servers.ServersSampleBase):
def test_get_server(self):
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = ''
subs['access_ip_v6'] = ''
@ -65,7 +65,7 @@ class DiskConfigJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_put('servers/%s' % uuid,
'server-update-put-req', {})
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = ''
subs['access_ip_v6'] = ''
@ -89,7 +89,6 @@ class DiskConfigJsonTest(test_servers.ServersSampleBase):
}
response = self._do_post('servers/%s/action' % uuid,
'server-action-rebuild-req', subs)
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = ''
subs['access_ip_v6'] = ''

View File

@ -71,8 +71,7 @@ class EvacuateJsonTest(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % self.uuid,
server_req, req_subs)
if server_resp:
subs = self._get_regexes()
self._verify_response(server_resp, subs, response,
self._verify_response(server_resp, {}, response,
expected_resp_code)
else:
# NOTE(gibi): no server_resp means we expect empty body as

View File

@ -43,7 +43,7 @@ class ExtendedAvailabilityZoneJsonTests(test_servers.ServersSampleBase):
def test_show(self):
uuid = self._post_server()
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
@ -52,7 +52,7 @@ class ExtendedAvailabilityZoneJsonTests(test_servers.ServersSampleBase):
def test_detail(self):
self._post_server()
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'

View File

@ -44,7 +44,7 @@ class ExtendedServerAttributesJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server()
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['instance_name'] = 'instance-\d{8}'
@ -57,7 +57,7 @@ class ExtendedServerAttributesJsonTest(test_servers.ServersSampleBase):
uuid = self._post_server()
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['instance_name'] = 'instance-\d{8}'

View File

@ -43,7 +43,7 @@ class ExtendedStatusSampleJsonTests(test_servers.ServersSampleBase):
def test_show(self):
uuid = self._post_server()
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
@ -52,7 +52,7 @@ class ExtendedStatusSampleJsonTests(test_servers.ServersSampleBase):
def test_detail(self):
uuid = self._post_server()
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['id'] = uuid
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'

View File

@ -49,7 +49,7 @@ class ExtendedVolumesSampleJsonTests(test_servers.ServersSampleBase):
self.stubs.Set(db, 'block_device_mapping_get_all_by_instance_uuids',
fakes.stub_bdm_get_all_by_instance_uuids)
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
@ -60,7 +60,7 @@ class ExtendedVolumesSampleJsonTests(test_servers.ServersSampleBase):
self.stubs.Set(db, 'block_device_mapping_get_all_by_instance_uuids',
fakes.stub_bdm_get_all_by_instance_uuids)
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['id'] = uuid
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'

View File

@ -37,7 +37,6 @@ class ExtensionInfoAllSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_list_extensions(self, soft_auth):
soft_auth.side_effect = fake_soft_extension_authorizer
response = self._do_get('extensions')
subs = self._get_regexes()
# The full extension list is one of the places that things are
# different between the API versions and the legacy vs. new
# stack. We default to the v2.1 case.
@ -47,7 +46,7 @@ class ExtensionInfoAllSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
if self.api_major_version == 'v2' and self._legacy_v2_code:
template = 'extensions-list-resp-v2'
self._verify_response(template, subs, response, 200)
self._verify_response(template, {}, response, 200)
class ExtensionInfoSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
@ -58,11 +57,10 @@ class ExtensionInfoSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_get_extensions(self, soft_auth):
soft_auth.side_effect = fake_soft_extension_authorizer
response = self._do_get('extensions/os-agents')
subs = self._get_regexes()
# The extension details info are different between legacy v2 and v2.1
# stack. namespace link and updated date are different. So keep both
# version for testing and default to v2.1
template = 'extensions-get-resp'
if self._legacy_v2_code:
template = 'extensions-get-resp-v2'
self._verify_response(template, subs, response, 200)
self._verify_response(template, {}, response, 200)

View File

@ -65,16 +65,15 @@ class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
response = self._do_post("flavors",
"flavor-access-create-req",
subs)
subs.update(self._get_regexes())
self._verify_response("flavor-access-create-resp", subs, response, 200)
# TODO(sdague): remove tests that are duplicative
def test_flavor_access_create(self):
self._create_flavor()
def test_flavor_access_detail(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
self._verify_response('flavor-access-detail-resp', subs, response, 200)
self._verify_response('flavor-access-detail-resp', {}, response, 200)
def test_flavor_access_list(self):
self._create_flavor()
@ -93,7 +92,6 @@ class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
subs = {
'flavor_id': flavor_id
}
subs.update(self._get_regexes())
self._verify_response('flavor-access-show-resp', subs, response, 200)
def test_flavor_access_add_tenant(self):

View File

@ -55,9 +55,9 @@ class FlavorManageSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
response = self._do_post("flavors",
"flavor-create-post-req",
subs)
subs.update(self._get_regexes())
self._verify_response("flavor-create-post-resp", subs, response, 200)
# TODO(sdague): remove duplication
def test_create_flavor(self):
# Get api sample to create a flavor.
self._create_flavor()

View File

@ -56,13 +56,11 @@ class FlavorRxtxJsonTest(api_sample_base.ApiSampleTestBaseV21):
'flavor_id': flavor_id,
'flavor_name': 'm1.tiny'
}
subs.update(self._get_regexes())
self._verify_response('flavor-rxtx-get-resp', subs, response, 200)
def test_flavors_rxtx_detail(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
self._verify_response('flavor-rxtx-list-resp', subs, response, 200)
self._verify_response('flavor-rxtx-list-resp', {}, response, 200)
def test_flavors_rxtx_create(self):
subs = {
@ -72,5 +70,4 @@ class FlavorRxtxJsonTest(api_sample_base.ApiSampleTestBaseV21):
response = self._do_post('flavors',
'flavor-rxtx-post-req',
subs)
subs.update(self._get_regexes())
self._verify_response('flavor-rxtx-post-resp', subs, response, 200)

View File

@ -40,18 +40,15 @@ class FlavorsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_flavors_get(self):
response = self._do_get('flavors/1')
subs = self._get_regexes()
self._verify_response('flavor-get-resp', subs, response, 200)
self._verify_response('flavor-get-resp', {}, response, 200)
def test_flavors_list(self):
response = self._do_get('flavors')
subs = self._get_regexes()
self._verify_response('flavors-list-resp', subs, response, 200)
self._verify_response('flavors-list-resp', {}, response, 200)
def test_flavors_detail(self):
response = self._do_get('flavors/detail')
subs = self._get_regexes()
self._verify_response('flavors-detail-resp', subs, response, 200)
self._verify_response('flavors-detail-resp', {}, response, 200)
class FlavorsSampleAllExtensionJsonTest(FlavorsSampleJsonTest):

View File

@ -70,9 +70,8 @@ class FloatingIpsTest(api_sample_base.ApiSampleTestBaseV21):
def test_floating_ips_list_empty(self):
response = self._do_get('os-floating-ips')
subs = self._get_regexes()
self._verify_response('floating-ips-list-empty-resp',
subs, response, 200)
{}, response, 200)
def test_floating_ips_list(self):
self._do_post('os-floating-ips',
@ -83,32 +82,28 @@ class FloatingIpsTest(api_sample_base.ApiSampleTestBaseV21):
{})
response = self._do_get('os-floating-ips')
subs = self._get_regexes()
self._verify_response('floating-ips-list-resp',
subs, response, 200)
{}, response, 200)
def test_floating_ips_create_nopool(self):
response = self._do_post('os-floating-ips',
'floating-ips-create-nopool-req',
{})
subs = self._get_regexes()
self._verify_response('floating-ips-create-resp',
subs, response, 200)
{}, response, 200)
def test_floating_ips_create(self):
response = self._do_post('os-floating-ips',
'floating-ips-create-req',
{"pool": CONF.default_floating_pool})
subs = self._get_regexes()
self._verify_response('floating-ips-create-resp', subs, response, 200)
self._verify_response('floating-ips-create-resp', {}, response, 200)
def test_floating_ips_get(self):
self.test_floating_ips_create()
# NOTE(sdague): the first floating ip will always have 1 as an id,
# but it would be better if we could get this from the create
response = self._do_get('os-floating-ips/%d' % 1)
subs = self._get_regexes()
self._verify_response('floating-ips-get-resp', subs, response, 200)
self._verify_response('floating-ips-get-resp', {}, response, 200)
def test_floating_ips_delete(self):
self.test_floating_ips_create()

View File

@ -69,15 +69,13 @@ class FloatingIpsBulkTest(api_sample_base.ApiSampleTestBaseV21):
def test_floating_ips_bulk_list(self):
response = self._do_get('os-floating-ips-bulk')
subs = self._get_regexes()
self._verify_response('floating-ips-bulk-list-resp',
subs, response, 200)
{}, response, 200)
def test_floating_ips_bulk_list_by_host(self):
response = self._do_get('os-floating-ips-bulk/testHost')
subs = self._get_regexes()
self._verify_response('floating-ips-bulk-list-by-host-resp',
subs, response, 200)
{}, response, 200)
def test_floating_ips_bulk_create(self):
response = self._do_post('os-floating-ips-bulk',
@ -85,14 +83,12 @@ class FloatingIpsBulkTest(api_sample_base.ApiSampleTestBaseV21):
{"ip_range": "192.168.1.0/24",
"pool": CONF.default_floating_pool,
"interface": CONF.public_interface})
subs = self._get_regexes()
self._verify_response('floating-ips-bulk-create-resp', subs,
self._verify_response('floating-ips-bulk-create-resp', {},
response, 200)
def test_floating_ips_bulk_delete(self):
response = self._do_put('os-floating-ips-bulk/delete',
'floating-ips-bulk-delete-req',
{"ip_range": "192.168.1.0/24"})
subs = self._get_regexes()
self._verify_response('floating-ips-bulk-delete-resp', subs,
self._verify_response('floating-ips-bulk-delete-resp', {},
response, 200)

View File

@ -50,11 +50,9 @@ class FpingSampleJsonTests(test_servers.ServersSampleBase):
def test_get_fping(self):
self._post_server()
response = self._do_get('os-fping')
subs = self._get_regexes()
self._verify_response('fping-get-resp', subs, response, 200)
self._verify_response('fping-get-resp', {}, response, 200)
def test_get_fping_details(self):
uuid = self._post_server()
response = self._do_get('os-fping/%s' % (uuid))
subs = self._get_regexes()
self._verify_response('fping-get-details-resp', subs, response, 200)
self._verify_response('fping-get-details-resp', {}, response, 200)

View File

@ -35,31 +35,25 @@ class HostsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_host_startup(self):
response = self._do_get('os-hosts/%s/startup' % self.compute.host)
subs = self._get_regexes()
self._verify_response('host-get-startup', subs, response, 200)
self._verify_response('host-get-startup', {}, response, 200)
def test_host_reboot(self):
response = self._do_get('os-hosts/%s/reboot' % self.compute.host)
subs = self._get_regexes()
self._verify_response('host-get-reboot', subs, response, 200)
self._verify_response('host-get-reboot', {}, response, 200)
def test_host_shutdown(self):
response = self._do_get('os-hosts/%s/shutdown' % self.compute.host)
subs = self._get_regexes()
self._verify_response('host-get-shutdown', subs, response, 200)
self._verify_response('host-get-shutdown', {}, response, 200)
def test_host_maintenance(self):
response = self._do_put('os-hosts/%s' % self.compute.host,
'host-put-maintenance-req', {})
subs = self._get_regexes()
self._verify_response('host-put-maintenance-resp', subs, response, 200)
self._verify_response('host-put-maintenance-resp', {}, response, 200)
def test_host_get(self):
response = self._do_get('os-hosts/%s' % self.compute.host)
subs = self._get_regexes()
self._verify_response('host-get-resp', subs, response, 200)
self._verify_response('host-get-resp', {}, response, 200)
def test_hosts_list(self):
response = self._do_get('os-hosts')
subs = self._get_regexes()
self._verify_response('hosts-list-resp', subs, response, 200)
self._verify_response('hosts-list-resp', {}, response, 200)

View File

@ -82,7 +82,6 @@ class HypervisorsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
'hypervisor_id': hypervisor_id
}
response = self._do_get('os-hypervisors/detail')
subs.update(self._get_regexes())
self._verify_response('hypervisors-detail-resp', subs, response, 200)
def test_hypervisors_show(self):
@ -91,7 +90,6 @@ class HypervisorsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
'hypervisor_id': hypervisor_id
}
response = self._do_get('os-hypervisors/%s' % hypervisor_id)
subs.update(self._get_regexes())
self._verify_response('hypervisors-show-resp', subs, response, 200)
def test_hypervisors_statistics(self):

View File

@ -32,29 +32,25 @@ class ImagesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_images_list(self):
# Get api sample of images get list request.
response = self._do_get('images')
subs = self._get_regexes()
self._verify_response('images-list-get-resp', subs, response, 200)
self._verify_response('images-list-get-resp', {}, response, 200)
def test_image_get(self):
# Get api sample of one single image details request.
image_id = fake.get_valid_image_id()
response = self._do_get('images/%s' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
subs = {'image_id': image_id}
self._verify_response('image-get-resp', subs, response, 200)
def test_images_details(self):
# Get api sample of all images details request.
response = self._do_get('images/detail')
subs = self._get_regexes()
self._verify_response('images-details-get-resp', subs, response, 200)
self._verify_response('images-details-get-resp', {}, response, 200)
def test_image_metadata_get(self):
# Get api sample of an image metadata request.
image_id = fake.get_valid_image_id()
response = self._do_get('images/%s/metadata' % image_id)
subs = self._get_regexes()
subs['image_id'] = image_id
subs = {'image_id': image_id}
self._verify_response('image-metadata-get-resp', subs, response, 200)
def test_image_metadata_post(self):
@ -63,24 +59,21 @@ class ImagesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
response = self._do_post(
'images/%s/metadata' % image_id,
'image-metadata-post-req', {})
subs = self._get_regexes()
self._verify_response('image-metadata-post-resp', subs, response, 200)
self._verify_response('image-metadata-post-resp', {}, response, 200)
def test_image_metadata_put(self):
# Get api sample of image metadata put request.
image_id = fake.get_valid_image_id()
response = self._do_put('images/%s/metadata' %
(image_id), 'image-metadata-put-req', {})
subs = self._get_regexes()
self._verify_response('image-metadata-put-resp', subs, response, 200)
self._verify_response('image-metadata-put-resp', {}, response, 200)
def test_image_meta_key_get(self):
# Get api sample of an image metadata key request.
image_id = fake.get_valid_image_id()
key = "kernel_id"
response = self._do_get('images/%s/metadata/%s' % (image_id, key))
subs = self._get_regexes()
self._verify_response('image-meta-key-get', subs, response, 200)
self._verify_response('image-meta-key-get', {}, response, 200)
def test_image_meta_key_put(self):
# Get api sample of image metadata key put request.
@ -88,5 +81,4 @@ class ImagesSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
key = "auto_disk_config"
response = self._do_put('images/%s/metadata/%s' % (image_id, key),
'image-meta-key-put-req', {})
subs = self._get_regexes()
self._verify_response('image-meta-key-put-resp', subs, response, 200)
self._verify_response('image-meta-key-put-resp', {}, response, 200)

View File

@ -80,7 +80,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
response = self._do_get('servers/%s/os-instance-actions/%s' %
(fake_uuid, fake_request_id))
subs = self._get_regexes()
subs = {}
subs['action'] = '(reboot)|(resize)'
subs['instance_uuid'] = fake_uuid
subs['integer_id'] = '[0-9]+'
@ -93,7 +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))
subs = self._get_regexes()
subs = {}
subs['action'] = '(reboot)|(resize)'
subs['integer_id'] = '[0-9]+'
subs['request_id'] = ('req-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'

View File

@ -39,12 +39,10 @@ class InstanceUsageAuditLogJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_show_instance_usage_audit_log(self):
response = self._do_get('os-instance_usage_audit_log/%s' %
urllib.quote('2012-07-05 10:00:00'))
subs = self._get_regexes()
self._verify_response('inst-usage-audit-log-show-get-resp',
subs, response, 200)
{}, response, 200)
def test_index_instance_usage_audit_log(self):
response = self._do_get('os-instance_usage_audit_log')
subs = self._get_regexes()
self._verify_response('inst-usage-audit-log-index-get-resp',
subs, response, 200)
{}, response, 200)

View File

@ -39,6 +39,8 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
'nova.api.openstack.compute.contrib.keypairs.Keypairs')
return f
# TODO(sdague): this is only needed because we randomly choose the
# uuid each time.
def generalize_subs(self, subs, vanilla_regexes):
subs['keypair_name'] = 'keypair-[0-9a-f-]+'
return subs
@ -52,9 +54,8 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = dict(keypair_name=key_name, **kwargs)
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
api_version=self.microversion)
subs = {'keypair_name': key_name}
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
self._verify_response('keypairs-post-resp', subs, response,
self.expected_post_status_code)
# NOTE(maurosr): return the key_name is necessary cause the
@ -71,13 +72,12 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
key_name = 'keypair-' + str(uuid.uuid4())
subs = {
'keypair_name': key_name,
'public_key': public_key
}
subs.update(**kwargs)
params = subs.copy()
params['public_key'] = public_key
params.update(**kwargs)
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
subs, api_version=self.microversion)
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
params, api_version=self.microversion)
self._verify_response('keypairs-import-post-resp', subs, response,
self.expected_post_status_code)
@ -86,8 +86,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
key_name = self.test_keypairs_post()
response = self._do_get('os-keypairs',
api_version=self.microversion)
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
subs = {'keypair_name': key_name}
self._verify_response('keypairs-list-resp', subs, response, 200)
def test_keypairs_get(self):
@ -95,8 +94,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
key_name = self.test_keypairs_post()
response = self._do_get('os-keypairs/%s' % key_name,
api_version=self.microversion)
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
subs = {'keypair_name': key_name}
self._verify_response('keypairs-get-resp', subs, response, 200)
def test_keypairs_delete(self):

View File

@ -44,5 +44,4 @@ class LimitsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_limits_get(self):
response = self._do_get('limits')
subs = self._get_regexes()
self._verify_response(self.template, subs, response, 200)
self._verify_response(self.template, {}, response, 200)

View File

@ -84,7 +84,6 @@ class MigrationsSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_get_migrations(self):
response = self._do_get('os-migrations')
subs = self._get_regexes()
self.assertEqual(200, response.status_code)
self._verify_response('migrations-get', subs, response, 200)
self._verify_response('migrations-get', {}, response, 200)

View File

@ -42,7 +42,6 @@ class MultipleCreateJsonTest(test_servers.ServersSampleBase):
'max_count': "3"
}
response = self._do_post('servers', 'multiple-create-post-req', subs)
subs.update(self._get_regexes())
self._verify_response('multiple-create-post-resp', subs, response, 202)
def test_multiple_create_without_reservation_id(self):
@ -54,6 +53,5 @@ class MultipleCreateJsonTest(test_servers.ServersSampleBase):
}
response = self._do_post('servers', 'multiple-create-no-resv-post-req',
subs)
subs.update(self._get_regexes())
self._verify_response('multiple-create-no-resv-post-resp', subs,
response, 202)

View File

@ -55,8 +55,7 @@ class NetworksJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_network_list(self):
response = self._do_get('os-networks')
subs = self._get_regexes()
self._verify_response('networks-list-resp', subs, response, 200)
self._verify_response('networks-list-resp', {}, response, 200)
def test_network_disassociate(self):
uuid = test_networks.FAKE_NETWORKS[0]['uuid']
@ -68,14 +67,12 @@ class NetworksJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_network_show(self):
uuid = test_networks.FAKE_NETWORKS[0]['uuid']
response = self._do_get('os-networks/%s' % uuid)
subs = self._get_regexes()
self._verify_response('network-show-resp', subs, response, 200)
self._verify_response('network-show-resp', {}, response, 200)
def test_network_create(self):
response = self._do_post("os-networks",
'network-create-req', {})
subs = self._get_regexes()
self._verify_response('network-create-resp', subs, response, 200)
self._verify_response('network-create-resp', {}, response, 200)
def test_network_add(self):
response = self._do_post("os-networks/add",

View File

@ -77,15 +77,13 @@ class ExtendedServerPciSampleJsonTest(test_servers.ServersSampleBase):
def test_show(self):
uuid = self._post_server()
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
subs = {'hostid': '[a-f0-9]+'}
self._verify_response('server-get-resp', subs, response, 200)
def test_detail(self):
self._post_server()
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs['hostid'] = '[a-f0-9]+'
subs = {'hostid': '[a-f0-9]+'}
self._verify_response('servers-detail-resp', subs, response, 200)
@ -154,7 +152,6 @@ class ExtendedHyervisorPciSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = {
'hypervisor_id': hypervisor_id,
}
subs.update(self._get_regexes())
self._verify_response('hypervisors-pci-show-resp',
subs, response, 200)
@ -170,7 +167,6 @@ class ExtendedHyervisorPciSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
}
response = self._do_get('os-hypervisors/detail')
subs.update(self._get_regexes())
self._verify_response('hypervisors-pci-detail-resp',
subs, response, 200)
@ -192,19 +188,16 @@ class PciSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
self.stubs.Set(db, 'pci_device_get_by_id',
self._fake_pci_device_get_by_id)
response = self._do_get('os-pci/1')
subs = self._get_regexes()
self._verify_response('pci-show-resp', subs, response, 200)
self._verify_response('pci-show-resp', {}, response, 200)
def test_pci_index(self):
self.stubs.Set(db, 'pci_device_get_all_by_node',
self._fake_pci_device_get_all_by_node)
response = self._do_get('os-pci')
subs = self._get_regexes()
self._verify_response('pci-index-resp', subs, response, 200)
self._verify_response('pci-index-resp', {}, response, 200)
def test_pci_detail(self):
self.stubs.Set(db, 'pci_device_get_all_by_node',
self._fake_pci_device_get_all_by_node)
response = self._do_get('os-pci/detail')
subs = self._get_regexes()
self._verify_response('pci-detail-resp', subs, response, 200)
self._verify_response('pci-detail-resp', {}, response, 200)

View File

@ -35,6 +35,5 @@ class PersonalitySampleJsonTest(test_servers.ServersSampleBase):
'server-action-rebuild-req', subs)
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs.update(self._get_regexes())
self._verify_response('server-action-rebuild-resp',
subs, response, 202)

View File

@ -63,7 +63,7 @@ class PreserveEphemeralOnRebuildJsonTest(test_servers.ServersSampleBase):
'server-action-rebuild-preserve-ephemeral',
subs)
if resp_tpl:
subs.update(self._get_regexes())
del subs['uuid']
self._verify_response(resp_tpl, subs, response, 202)
else:
self.assertEqual(202, response.status_code)

View File

@ -44,9 +44,8 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'get-vnc-console-post-req',
{'action': 'os-getVNCConsole'})
subs = self._get_regexes()
subs["url"] = \
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
subs = {"url":
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"}
self._verify_response('get-vnc-console-post-resp', subs, response, 200)
def test_get_spice_console(self):
@ -54,9 +53,8 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'get-spice-console-post-req',
{'action': 'os-getSPICEConsole'})
subs = self._get_regexes()
subs["url"] = \
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
subs = {"url":
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"}
self._verify_response('get-spice-console-post-resp', subs,
response, 200)
@ -65,9 +63,8 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'get-rdp-console-post-req',
{'action': 'os-getRDPConsole'})
subs = self._get_regexes()
subs["url"] = \
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
subs = {"url":
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"}
self._verify_response('get-rdp-console-post-resp', subs,
response, 200)
@ -76,9 +73,8 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/action' % uuid,
'get-serial-console-post-req',
{'action': 'os-getSerialConsole'})
subs = self._get_regexes()
subs["url"] = \
"((ws?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"
subs = {"url":
"((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)"}
self._verify_response('get-serial-console-post-resp', subs,
response, 200)
@ -102,8 +98,7 @@ class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/remote-consoles' % uuid,
'create-vnc-console-req', body,
api_version='2.6')
subs = self._get_regexes()
subs["url"] = self.http_regex
subs = {"url": self.http_regex}
self._verify_response('create-vnc-console-resp', subs, response, 200)
@ -124,6 +119,5 @@ class ConsolesV28SampleJsonTests(test_servers.ServersSampleBase):
response = self._do_post('servers/%s/remote-consoles' % uuid,
'create-mks-console-req', body,
api_version='2.8')
subs = self._get_regexes()
subs["url"] = self.http_regex
subs = {"url": self.http_regex}
self._verify_response('create-mks-console-resp', subs, response, 200)

View File

@ -63,7 +63,7 @@ class RescueJsonTest(test_servers.ServersSampleBase):
# Do a server get to make sure that the 'RESCUE' state is set
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['status'] = 'RESCUE'
@ -84,7 +84,7 @@ class RescueJsonTest(test_servers.ServersSampleBase):
# Do a server get to make sure that the 'RESCUE' state is set
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['status'] = 'RESCUE'
@ -100,7 +100,7 @@ class RescueJsonTest(test_servers.ServersSampleBase):
# Do a server get to make sure that the 'ACTIVE' state is back
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['status'] = 'ACTIVE'

View File

@ -38,9 +38,9 @@ class SchedulerHintsJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_scheduler_hints_post(self):
# Get api sample of scheduler hint post request.
subs = self._get_regexes()
subs.update({'image_id': fake.get_valid_image_id(),
'image_near': str(uuid.uuid4())})
subs = {'image_id': fake.get_valid_image_id(),
'uuid': str(uuid.uuid4())}
response = self._do_post('servers', 'scheduler-hints-post-req',
subs)
del subs['uuid']
self._verify_response('scheduler-hints-post-resp', subs, response, 202)

View File

@ -110,7 +110,7 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
def test_server_get(self):
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/%s' % uuid)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
@ -119,7 +119,7 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
def test_server_detail(self):
self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
subs['access_ip_v6'] = '80fe::'
@ -152,24 +152,21 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
def test_security_groups_list(self):
# Get api sample of security groups get list request.
response = self._do_get('os-security-groups')
subs = self._get_regexes()
self._verify_response('security-groups-list-get-resp',
subs, response, 200)
{}, response, 200)
def test_security_groups_get(self):
# Get api sample of security groups get request.
security_group_id = '11111111-1111-1111-1111-111111111111'
response = self._do_get('os-security-groups/%s' % security_group_id)
subs = self._get_regexes()
self._verify_response('security-groups-get-resp', subs, response, 200)
self._verify_response('security-groups-get-resp', {}, response, 200)
def test_security_groups_list_server(self):
# Get api sample of security groups for a specific server.
uuid = self._post_server(use_common_server_api_samples=False)
response = self._do_get('servers/%s/os-security-groups' % uuid)
subs = self._get_regexes()
self._verify_response('server-security-groups-list-resp',
subs, response, 200)
{}, response, 200)
def test_security_groups_add(self):
self._create_security_group()

View File

@ -36,6 +36,5 @@ class ServerDiagnosticsSamplesJsonTest(test_servers.ServersSampleBase):
def test_server_diagnostics_get(self):
uuid = self._post_server()
response = self._do_get('servers/%s/diagnostics' % uuid)
subs = self._get_regexes()
self._verify_response('server-diagnostics-get-resp', subs,
self._verify_response('server-diagnostics-get-resp', {},
response, 200)

View File

@ -51,5 +51,4 @@ class ServerExternalEventsSamplesJsonTest(test_servers.ServersSampleBase):
response = self._do_post('os-server-external-events',
'event-create-req',
subs)
subs.update(self._get_regexes())
self._verify_response('event-create-resp', subs, response, 200)

View File

@ -42,7 +42,7 @@ class ServerGroupsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = self._get_create_subs()
response = self._do_post('os-server-groups',
'server-groups-post-req', subs)
subs = self._get_regexes()
subs = {}
subs['name'] = 'test'
return self._verify_response('server-groups-post-resp',
subs, response, 200)
@ -59,7 +59,6 @@ class ServerGroupsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
subs = self._get_create_subs()
uuid = self._post_server_group()
response = self._do_get('os-server-groups')
subs.update(self._get_regexes())
subs['id'] = uuid
self._verify_response('server-groups-list-resp',
subs, response, 200)

View File

@ -47,8 +47,7 @@ class ServerPasswordSampleJsonTests(test_servers.ServersSampleBase):
mock_extract_password.return_value = password
uuid = self._post_server()
response = self._do_get('servers/%s/os-server-password' % uuid)
subs = self._get_regexes()
subs['encrypted_password'] = password.replace('+', '\\+')
subs = {'encrypted_password': password.replace('+', '\\+')}
self._verify_response('get-password-resp', subs, response, 200)
def test_reset_password(self):

View File

@ -46,7 +46,7 @@ class ServerUsageSampleJsonTest(test_servers.ServersSampleBase):
def test_show(self):
response = self._do_get('servers/%s' % self.uuid)
subs = self._get_regexes()
subs = {}
subs['id'] = self.uuid
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'
@ -55,7 +55,7 @@ class ServerUsageSampleJsonTest(test_servers.ServersSampleBase):
def test_details(self):
response = self._do_get('servers/detail')
subs = self._get_regexes()
subs = {}
subs['id'] = self.uuid
subs['hostid'] = '[a-f0-9]+'
subs['access_ip_v4'] = '1.2.3.4'

View File

@ -48,7 +48,6 @@ class ServersSampleBase(api_sample_base.ApiSampleTestBaseV21):
self.__class__._use_common_server_api_samples = (
use_common_server_api_samples)
response = self._do_post('servers', 'server-post-req', subs)
subs = self._get_regexes()
status = self._verify_response('server-post-resp', subs,
response, 202)
return status
@ -80,7 +79,7 @@ class ServersSampleJsonTest(ServersSampleBase):
uuid = self.test_servers_post()
response = self._do_get('servers/%s' % uuid,
api_version=self.microversion)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
@ -93,15 +92,14 @@ class ServersSampleJsonTest(ServersSampleBase):
uuid = self._post_server()
response = self._do_get('servers',
api_version=self.microversion)
subs = self._get_regexes()
subs['id'] = uuid
subs = {'id': uuid}
self._verify_response('servers-list-resp', subs, response, 200)
def test_servers_details(self):
uuid = self._post_server()
response = self._do_get('servers/detail',
api_version=self.microversion)
subs = self._get_regexes()
subs = {}
subs['hostid'] = '[a-f0-9]+'
subs['id'] = uuid
subs['hypervisor_hostname'] = r'[\w\.\-]+'
@ -133,8 +131,7 @@ class ServerSortKeysJsonTests(ServersSampleBase):
def test_servers_list(self):
self._post_server()
response = self._do_get('servers?sort_key=display_name&sort_dir=asc')
subs = self._get_regexes()
self._verify_response('server-sort-keys-list-resp', subs, response,
self._verify_response('server-sort-keys-list-resp', {}, response,
200)
@ -155,7 +152,6 @@ class ServersActionsJsonTest(ServersSampleBase):
req_tpl,
subs)
if resp_tpl:
subs.update(self._get_regexes())
self._verify_response(resp_tpl, subs, response, code)
else:
self.assertEqual(code, response.status_code)
@ -176,7 +172,7 @@ class ServersActionsJsonTest(ServersSampleBase):
def test_server_rebuild(self):
uuid = self._post_server()
image = fake.get_valid_image_id()
subs = {
params = {
'host': self._get_host(),
'compute_endpoint': self._get_compute_endpoint(),
'versioned_compute_endpoint': self._get_vers_compute_endpoint(),
@ -188,10 +184,11 @@ class ServersActionsJsonTest(ServersSampleBase):
'access_ip_v6': '80fe::',
}
self._test_server_action(uuid, 'rebuild',
'server-action-rebuild',
subs,
'server-action-rebuild-resp')
resp = self._do_post('servers/%s/action' % uuid,
'server-action-rebuild', params)
subs = params.copy()
del subs['uuid']
self._verify_response('server-action-rebuild-resp', subs, resp, 202)
def test_server_resize(self):
self.flags(allow_resize_to_same_host=True)
@ -268,6 +265,5 @@ class ServersSampleMultiStatusJsonTest(ServersSampleBase):
def test_servers_list(self):
uuid = self._post_server()
response = self._do_get('servers?status=active&status=error')
subs = self._get_regexes()
subs['id'] = uuid
subs = {'id': uuid}
self._verify_response('servers-list-resp', subs, response, 200)

View File

@ -29,12 +29,10 @@ class ServersIpsJsonTest(test_servers.ServersSampleBase):
# Test getting a server's IP information.
uuid = self._post_server()
response = self._do_get('servers/%s/ips' % uuid)
subs = self._get_regexes()
self._verify_response('server-ips-resp', subs, response, 200)
self._verify_response('server-ips-resp', {}, response, 200)
def test_get_by_network(self):
# Test getting a server's IP information by network id.
uuid = self._post_server()
response = self._do_get('servers/%s/ips/private' % uuid)
subs = self._get_regexes()
self._verify_response('server-ips-network-resp', subs, response, 200)
self._verify_response('server-ips-network-resp', {}, response, 200)

View File

@ -67,7 +67,6 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
'zone': 'nova',
'status': 'disabled',
'state': 'up'}
subs.update(self._get_regexes())
self._verify_response('services-list-get-resp', subs, response, 200)
def test_service_enable(self):
@ -123,7 +122,6 @@ class ServicesV211JsonTest(ServicesJsonTest):
'forced_down': 'false',
'status': 'disabled',
'state': 'up'}
subs.update(self._get_regexes())
self._verify_response('services-list-get-resp', subs, response, 200)
def test_force_down(self):

View File

@ -61,14 +61,12 @@ class SimpleTenantUsageSampleJsonTest(test_servers.ServersSampleBase):
# Get api sample to get all tenants usage request.
response = self._do_get('os-simple-tenant-usage?%s' % (
urllib.urlencode(self.query)))
subs = self._get_regexes()
self._verify_response('simple-tenant-usage-get', subs, response, 200)
self._verify_response('simple-tenant-usage-get', {}, response, 200)
def test_get_tenant_usage_details(self):
# Get api sample to get specific tenant usage request.
tenant_id = 'openstack'
response = self._do_get('os-simple-tenant-usage/%s?%s' % (tenant_id,
urllib.urlencode(self.query)))
subs = self._get_regexes()
self._verify_response('simple-tenant-usage-get-specific', subs,
self._verify_response('simple-tenant-usage-get-specific', {},
response, 200)

View File

@ -55,13 +55,11 @@ class TenantNetworksJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_list_networks(self):
response = self._do_get('os-tenant-networks')
subs = self._get_regexes()
self._verify_response('networks-list-res', subs, response, 200)
self._verify_response('networks-list-res', {}, response, 200)
def test_create_network(self):
response = self._do_post('os-tenant-networks', "networks-post-req", {})
subs = self._get_regexes()
self._verify_response('networks-post-res', subs, response, 200)
self._verify_response('networks-post-res', {}, response, 200)
def test_delete_network(self):
response = self._do_post('os-tenant-networks', "networks-post-req", {})

View File

@ -55,13 +55,11 @@ class UsedLimitsSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_get_used_limits(self):
# Get api sample to used limits.
response = self._do_get('limits')
subs = self._get_regexes()
self._verify_response(self.template, subs, response, 200)
self._verify_response(self.template, {}, response, 200)
def test_get_used_limits_for_admin(self):
# TODO(sdague): if we split the admin tests out the whole
# class doesn't need admin api enabled.
tenant_id = 'openstack'
response = self._do_get('limits?tenant_id=%s' % tenant_id)
subs = self._get_regexes()
self._verify_response(self.template, subs, response, 200)
self._verify_response(self.template, {}, response, 200)

View File

@ -44,5 +44,4 @@ class UserDataJsonTest(api_sample_base.ApiSampleTestBaseV21):
}
response = self._do_post('servers', 'userdata-post-req', subs)
subs.update(self._get_regexes())
self._verify_response('userdata-post-resp', subs, response, 202)

View File

@ -25,18 +25,15 @@ class VersionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
def test_versions_get(self):
response = self._do_get('', strip_version=True)
subs = self._get_regexes()
self._verify_response('versions-get-resp', subs,
self._verify_response('versions-get-resp', {},
response, 200, update_links=False)
def test_versions_get_v2(self):
response = self._do_get('/v2', strip_version=True)
subs = self._get_regexes()
self._verify_response('v2-version-get-resp', subs,
self._verify_response('v2-version-get-resp', {},
response, 200, update_links=False)
def test_versions_get_v21(self):
response = self._do_get('/v2.1', strip_version=True)
subs = self._get_regexes()
self._verify_response('v21-version-get-resp', subs,
self._verify_response('v21-version-get-resp', {},
response, 200, update_links=False)

View File

@ -47,8 +47,7 @@ class VirtualInterfacesJsonTest(test_servers.ServersSampleBase):
response = self._do_get('servers/%s/os-virtual-interfaces' % uuid)
subs = self._get_regexes()
subs['mac_addr'] = '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'
subs = {'mac_addr': '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}'}
self._verify_response(self.template, subs, response, 200)

View File

@ -67,7 +67,6 @@ class SnapshotsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_snapshots_create(self):
response = self._create_snapshot()
self.create_subs.update(self._get_regexes())
self._verify_response("snapshot-create-resp",
self.create_subs, response, 200)
@ -81,13 +80,11 @@ class SnapshotsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
def test_snapshots_detail(self):
response = self._do_get('os-snapshots/detail')
subs = self._get_regexes()
self._verify_response('snapshots-detail-resp', subs, response, 200)
self._verify_response('snapshots-detail-resp', {}, response, 200)
def test_snapshots_list(self):
response = self._do_get('os-snapshots')
subs = self._get_regexes()
self._verify_response('snapshots-list-resp', subs, response, 200)
self._verify_response('snapshots-list-resp', {}, response, 200)
def test_snapshots_show(self):
response = self._do_get('os-snapshots/100')
@ -95,7 +92,6 @@ class SnapshotsSampleJsonTests(api_sample_base.ApiSampleTestBaseV21):
'snapshot_name': 'Default name',
'description': 'Default description'
}
subs.update(self._get_regexes())
self._verify_response('snapshots-show-resp', subs, response, 200)
@ -166,9 +162,7 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
self.stubs.Set(cinder.API, "create", self._stub_volume_create)
response = self._do_post('os-volumes', 'os-volumes-post-req',
subs_req)
subs = self._get_regexes()
subs.update(subs_req)
self._verify_response('os-volumes-post-resp', subs, response, 200)
self._verify_response('os-volumes-post-resp', subs_req, response, 200)
def test_volumes_show(self):
subs = {
@ -177,7 +171,6 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
}
vol_id = self._get_volume_id()
response = self._do_get('os-volumes/%s' % vol_id)
subs.update(self._get_regexes())
self._verify_response('os-volumes-get-resp', subs, response, 200)
def test_volumes_index(self):
@ -186,7 +179,6 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
'volume_desc': "Volume Description",
}
response = self._do_get('os-volumes')
subs.update(self._get_regexes())
self._verify_response('os-volumes-index-resp', subs, response, 200)
def test_volumes_detail(self):
@ -197,7 +189,6 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
'volume_desc': "Volume Description",
}
response = self._do_get('os-volumes/detail')
subs.update(self._get_regexes())
self._verify_response('os-volumes-detail-resp', subs, response, 200)
def test_volumes_create(self):
@ -211,7 +202,9 @@ class VolumesSampleJsonTest(test_servers.ServersSampleBase):
self.assertEqual('', response.content)
class VolumeAttachmentsSampleBase(test_servers.ServersSampleBase):
class VolumeAttachmentsSample(test_servers.ServersSampleBase):
extension_name = "os-volumes"
def _stub_db_bdms_get_all_by_instance(self, server_id):
def fake_bdms_get_all_by_instance(context, instance_uuid,
@ -243,12 +236,8 @@ class VolumeAttachmentsSampleBase(test_servers.ServersSampleBase):
self.stubs.Set(compute_api.API, 'get', fake_compute_api_get)
class VolumeAttachmentsSampleJsonTest(VolumeAttachmentsSampleBase):
extension_name = "os-volumes"
def _get_flags(self):
f = super(VolumeAttachmentsSampleJsonTest, self)._get_flags()
f = super(VolumeAttachmentsSample, self)._get_flags()
f['osapi_compute_extension'] = CONF.osapi_compute_extension[:]
f['osapi_compute_extension'].append(
'nova.api.openstack.compute.contrib.volumes.Volumes')
@ -284,19 +273,16 @@ class VolumeAttachmentsSampleJsonTest(VolumeAttachmentsSampleBase):
% server_id,
'attach-volume-to-server-req', subs)
subs.update(self._get_regexes())
self._verify_response('attach-volume-to-server-resp', subs,
response, 200)
def test_list_volume_attachments(self):
server_id = self._post_server()
self._stub_db_bdms_get_all_by_instance(server_id)
response = self._do_get('servers/%s/os-volume_attachments'
% server_id)
subs = self._get_regexes()
self._verify_response('list-volume-attachments-resp', subs,
self._verify_response('list-volume-attachments-resp', {},
response, 200)
def test_volume_attachment_detail(self):
@ -306,8 +292,7 @@ class VolumeAttachmentsSampleJsonTest(VolumeAttachmentsSampleBase):
self._stub_compute_api_get()
response = self._do_get('servers/%s/os-volume_attachments/%s'
% (server_id, attach_id))
subs = self._get_regexes()
self._verify_response('volume-attachment-detail-resp', subs,
self._verify_response('volume-attachment-detail-resp', {},
response, 200)
def test_volume_attachment_delete(self):

View File

@ -257,6 +257,13 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
def _verify_response(self, name, subs, response, exp_code,
update_links=True):
# Always also include the laundry list of base regular
# expressions for possible key values in our templates. Test
# specific patterns (the value of ``subs``) can override
# these.
regexes = self._get_regexes()
regexes.update(subs)
subs = regexes
self.assertEqual(exp_code, response.status_code)
response_data = response.content
response_data = pretty_data(response_data)
@ -291,6 +298,8 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
vanilla_regexes = self._get_regexes()
subs['compute_host'] = vanilla_regexes['host_name']
subs['id'] = vanilla_regexes['id']
subs['uuid'] = vanilla_regexes['uuid']
subs['image_id'] = vanilla_regexes['uuid']
subs = self.generalize_subs(subs, vanilla_regexes)
sample_data = objectify(sample_data)
self._compare_result(subs, template_data, sample_data, "Sample")