Add server test for image and flavor lookups

Review Ia66e44e530799ce6531922dcf6a84e38528c8725 changes OSC's server
commands to use the image client rather than compute clirnt (yay!)
but we never really tested any of this in functional tests.  This review
adds a simple functional test (in the new style) to watch the client
change; it passes locally for me without the client change, due to timing
we went ahead and merged that first.

Change-Id: I5529f412578c50090e70d17aa0129217bf803fed
This commit is contained in:
Dean Troyer 2017-01-24 17:41:00 -06:00 committed by Steve Martinelli
parent bfad2abf23
commit 9ada3b529d

@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import json
import time import time
from tempest.lib.common.utils import data_utils from tempest.lib.common.utils import data_utils
@ -59,12 +60,10 @@ class ServerTests(base.TestCase):
"""Create server. Add cleanup.""" """Create server. Add cleanup."""
name = name or data_utils.rand_uuid() name = name or data_utils.rand_uuid()
opts = self.get_opts(self.FIELDS) opts = self.get_opts(self.FIELDS)
flavor = self.get_flavor()
image = self.get_image()
network = self.get_network()
raw_output = self.openstack('--debug server create --flavor ' + raw_output = self.openstack('--debug server create --flavor ' +
flavor + self.flavor_name +
' --image ' + image + network + ' ' + ' --image ' + self.image_name +
self.network_arg + ' ' +
name + opts) name + opts)
if not raw_output: if not raw_output:
self.fail('Server has not been created!') self.fail('Server has not been created!')
@ -82,6 +81,10 @@ class ServerTests(base.TestCase):
def setUp(self): def setUp(self):
"""Set necessary variables and create server.""" """Set necessary variables and create server."""
super(ServerTests, self).setUp() super(ServerTests, self).setUp()
self.flavor_name = self.get_flavor()
self.image_name = self.get_image()
self.network_arg = self.get_network()
self.NAME = data_utils.rand_name('TestServer') self.NAME = data_utils.rand_name('TestServer')
self.OTHER_NAME = data_utils.rand_name('TestServer') self.OTHER_NAME = data_utils.rand_name('TestServer')
self.HEADERS = ['"Name"'] self.HEADERS = ['"Name"']
@ -119,16 +122,47 @@ class ServerTests(base.TestCase):
self.assertIn(self.NAME, raw_output) self.assertIn(self.NAME, raw_output)
def test_server_show(self): def test_server_show(self):
"""Test server show command. """Test server create, server delete commands"""
name1 = data_utils.rand_name('TestServer')
cmd_output = json.loads(self.openstack(
'server create -f json ' +
'--flavor ' + self.flavor_name + ' ' +
'--image ' + self.image_name + ' ' +
self.network_arg + ' ' +
name1
))
self.assertIsNotNone(cmd_output["id"])
self.addCleanup(self.openstack, 'server delete ' + name1)
self.assertEqual(
name1,
cmd_output["name"],
)
Test steps: # Have a look at some other fields
1) Boot server in setUp flavor = json.loads(self.openstack(
2) Show server 'flavor show -f json ' +
3) Check output self.flavor_name
""" ))
opts = self.get_opts(self.FIELDS) self.assertEqual(
raw_output = self.openstack('server show ' + self.NAME + opts) self.flavor_name,
self.assertEqual(self.NAME + "\n", raw_output) flavor['name'],
)
self.assertEqual(
'%s (%s)' % (flavor['name'], flavor['id']),
cmd_output["flavor"],
)
image = json.loads(self.openstack(
'image show -f json ' +
self.image_name
))
self.assertEqual(
self.image_name,
image['name'],
)
self.assertEqual(
'%s (%s)' % (image['name'], image['id']),
cmd_output["image"],
)
def test_server_metadata(self): def test_server_metadata(self):
"""Test command to set server metadata. """Test command to set server metadata.