Merge "UT: cleanup in API test cases for response attr verification"

This commit is contained in:
Jenkins 2016-01-25 23:56:40 +00:00 committed by Gerrit Code Review
commit 16b2594bf6
3 changed files with 51 additions and 81 deletions

View File

@ -56,6 +56,14 @@ class FunctionalTest(base.DbTestCase):
self._check_version = p.start()
self.addCleanup(p.stop)
def _verify_attrs(self, attrs, response, positive=True):
if positive is True:
verify_method = self.assertIn
else:
verify_method = self.assertNotIn
for attr in attrs:
verify_method(attr, response)
def _make_app(self, enable_acl=False):
# Determine where we are so we can set up paths in the config
root_dir = self.get_path()

View File

@ -44,6 +44,14 @@ class TestBayObject(base.TestCase):
class TestListBay(api_base.FunctionalTest):
_bay_attrs = ("name", "baymodel_id", "node_count", "status",
"master_count", "stack_id", "bay_create_timeout")
_expand_bay_attrs = ("name", "baymodel_id", "node_count", "status",
"api_address", "discovery_url", "node_addresses",
"master_count", "master_addresses", "stack_id",
"bay_create_timeout", "status_reason")
def setUp(self):
super(TestListBay, self).setUp()
obj_utils.create_test_baymodel(self.context)
@ -56,27 +64,23 @@ class TestListBay(api_base.FunctionalTest):
bay = obj_utils.create_test_bay(self.context)
response = self.get_json('/bays')
self.assertEqual(bay.uuid, response['bays'][0]["uuid"])
for key in ("name", "baymodel_id", "node_count", "status",
"master_count"):
self.assertIn(key, response['bays'][0])
self._verify_attrs(self._bay_attrs, response['bays'][0])
# Verify atts that should not appear from bay's get_all response
none_attrs = set(self._expand_bay_attrs) - set(self._bay_attrs)
self._verify_attrs(none_attrs, response['bays'][0], positive=False)
def test_get_one(self):
bay = obj_utils.create_test_bay(self.context)
response = self.get_json('/bays/%s' % bay['uuid'])
self.assertEqual(bay.uuid, response['uuid'])
for key in ("name", "baymodel_id", "node_count", "status",
"api_address", "discovery_url", "node_addresses",
"master_count", "master_addresses", "stack_id"):
self.assertIn(key, response)
self._verify_attrs(self._expand_bay_attrs, response)
def test_get_one_by_name(self):
bay = obj_utils.create_test_bay(self.context)
response = self.get_json('/bays/%s' % bay['name'])
self.assertEqual(bay.uuid, response['uuid'])
for key in ("name", "baymodel_id", "node_count", "status",
"api_address", "discovery_url", "node_addresses",
"master_count", "master_addresses", "stack_id"):
self.assertIn(key, response)
self._verify_attrs(self._expand_bay_attrs, response)
def test_get_one_by_name_not_found(self):
response = self.get_json(
@ -112,9 +116,7 @@ class TestListBay(api_base.FunctionalTest):
bay = obj_utils.create_test_bay(self.context)
response = self.get_json('/bays/detail')
self.assertEqual(bay.uuid, response['bays'][0]["uuid"])
for key in ("name", "baymodel_id", "node_count", "status",
"master_count"):
self.assertIn(key, response['bays'][0])
self._verify_attrs(self._expand_bay_attrs, response['bays'][0])
def test_detail_with_pagination_marker(self):
bay_list = []
@ -127,10 +129,7 @@ class TestListBay(api_base.FunctionalTest):
% bay_list[2].uuid)
self.assertEqual(1, len(response['bays']))
self.assertEqual(bay_list[-1].uuid, response['bays'][0]['uuid'])
for key in ("name", "baymodel_id", "node_count", "status",
"discovery_url", "api_address", "node_addresses",
"master_addresses", "stack_id"):
self.assertIn(key, response['bays'][0])
self._verify_attrs(self._expand_bay_attrs, response['bays'][0])
def test_detail_against_single(self):
bay = obj_utils.create_test_bay(self.context)

View File

@ -41,6 +41,19 @@ class TestBayModelObject(base.TestCase):
class TestListBayModel(api_base.FunctionalTest):
_baymodel_attrs = ('apiserver_port', 'name', 'tls_disabled',
'registry_enabled', 'image_id', 'coe', 'server_type',
'public',)
_expand_baymodel_attrs = ('name', 'apiserver_port', 'network_driver',
'coe', 'flavor_id', 'fixed_network',
'dns_nameserver', 'http_proxy',
'docker_volume_size', 'server_type',
'cluster_distro', 'external_network_id',
'image_id', 'registry_enabled', 'no_proxy',
'keypair_id', 'https_proxy', 'tls_disabled',
'public', 'labels', 'ssh_authorized_key',
'master_flavor_id',)
def test_empty(self):
response = self.get_json('/baymodels')
self.assertEqual([], response['baymodels'])
@ -49,56 +62,25 @@ class TestListBayModel(api_base.FunctionalTest):
baymodel = obj_utils.create_test_baymodel(self.context)
response = self.get_json('/baymodels')
self.assertEqual(baymodel.uuid, response['baymodels'][0]["uuid"])
self.assertNotIn('flavor_id', response['baymodels'][0])
self.assertNotIn('master_flavor_id', response['baymodels'][0])
self.assertNotIn('dns_nameserver', response['baymodels'][0])
self.assertNotIn('keypair_id', response['baymodels'][0])
self.assertNotIn('external_network_id', response['baymodels'][0])
self.assertNotIn('fixed_network', response['baymodels'][0])
self.assertNotIn('network_driver', response['baymodels'][0])
self.assertNotIn('docker_volume_size', response['baymodels'][0])
self.assertNotIn('ssh_authorized_key', response['baymodels'][0])
self.assertNotIn('http_proxy', response['baymodels'][0])
self.assertNotIn('https_proxy', response['baymodels'][0])
self.assertNotIn('no_proxy', response['baymodels'][0])
self.assertNotIn('labels', response['baymodels'][0])
self._verify_attrs(self._baymodel_attrs, response['baymodels'][0])
# Verify attrs that should not appear from response
none_attrs = (set(self._expand_baymodel_attrs) -
set(self._baymodel_attrs))
self._verify_attrs(none_attrs, response['baymodels'][0],
positive=False)
def test_get_one(self):
baymodel = obj_utils.create_test_baymodel(self.context)
response = self.get_json('/baymodels/%s' % baymodel['uuid'])
self.assertEqual(baymodel.uuid, response['uuid'])
self.assertIn('flavor_id', response)
self.assertIn('master_flavor_id', response)
self.assertIn('dns_nameserver', response)
self.assertIn('keypair_id', response)
self.assertIn('external_network_id', response)
self.assertIn('fixed_network', response)
self.assertIn('network_driver', response)
self.assertIn('docker_volume_size', response)
self.assertIn('ssh_authorized_key', response)
self.assertIn('coe', response)
self.assertIn('http_proxy', response)
self.assertIn('https_proxy', response)
self.assertIn('no_proxy', response)
self.assertIn('labels', response)
self._verify_attrs(self._expand_baymodel_attrs, response)
def test_get_one_by_name(self):
baymodel = obj_utils.create_test_baymodel(self.context)
response = self.get_json('/baymodels/%s' % baymodel['name'])
self.assertEqual(baymodel.uuid, response['uuid'])
self.assertIn('flavor_id', response)
self.assertIn('master_flavor_id', response)
self.assertIn('dns_nameserver', response)
self.assertIn('keypair_id', response)
self.assertIn('external_network_id', response)
self.assertIn('fixed_network', response)
self.assertIn('network_driver', response)
self.assertIn('docker_volume_size', response)
self.assertIn('coe', response)
self.assertIn('http_proxy', response)
self.assertIn('https_proxy', response)
self.assertIn('https_proxy', response)
self.assertIn('labels', response)
self._verify_attrs(self._expand_baymodel_attrs, response)
def test_get_one_by_name_not_found(self):
response = self.get_json(
@ -139,12 +121,8 @@ class TestListBayModel(api_base.FunctionalTest):
baymodel = obj_utils.create_test_baymodel(self.context)
response = self.get_json('/baymodels/detail')
self.assertEqual(baymodel.uuid, response['baymodels'][0]["uuid"])
for key in ("flavor_id", "master_flavor_id", "dns_nameserver",
"keypair_id", "external_network_id", "fixed_network",
"docker_volume_size", "ssh_authorized_key", "coe",
"http_proxy", "https_proxy", "no_proxy", "labels",
"network_driver"):
self.assertIn(key, response['baymodels'][0])
self._verify_attrs(self._expand_baymodel_attrs,
response['baymodels'][0])
def test_detail_with_pagination_marker(self):
bm_list = []
@ -158,23 +136,8 @@ class TestListBayModel(api_base.FunctionalTest):
% bm_list[2].uuid)
self.assertEqual(1, len(response['baymodels']))
self.assertEqual(bm_list[-1].uuid, response['baymodels'][0]['uuid'])
for key in ("flavor_id", "master_flavor_id", "dns_nameserver",
"keypair_id", "external_network_id", "fixed_network",
"network_driver", "docker_volume_size", "labels",
"ssh_authorized_key", "coe"):
self.assertIn(key, response['baymodels'][0])
self.assertIn('flavor_id', response['baymodels'][0])
self.assertIn('master_flavor_id', response['baymodels'][0])
self.assertIn('dns_nameserver', response['baymodels'][0])
self.assertIn('keypair_id', response['baymodels'][0])
self.assertIn('external_network_id', response['baymodels'][0])
self.assertIn('fixed_network', response['baymodels'][0])
self.assertIn('docker_volume_size', response['baymodels'][0])
self.assertIn('ssh_authorized_key', response['baymodels'][0])
self.assertIn('coe', response['baymodels'][0])
self.assertIn('http_proxy', response['baymodels'][0])
self.assertIn('https_proxy', response['baymodels'][0])
self.assertIn('no_proxy', response['baymodels'][0])
self._verify_attrs(self._expand_baymodel_attrs,
response['baymodels'][0])
def test_detail_against_single(self):
baymodel = obj_utils.create_test_baymodel(self.context)