Use format options for functional tests
Use the format options for functional tests so we can have more assertEquals and less assertIn. Change-Id: I34e6c76b42964f7b596ea35e6b0354a242611cb4
This commit is contained in:
parent
d39b9c91c4
commit
29f29e44d3
@ -6,3 +6,4 @@ test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
|
||||
|
||||
test_id_option=--load-list $IDFILE
|
||||
test_list_option=--list
|
||||
group_regex=([^\.]+\.)+
|
||||
|
@ -28,12 +28,12 @@ EXAMPLE_DIR = os.path.join(ROOT_DIR, 'examples')
|
||||
|
||||
def execute(cmd, fail_ok=False, merge_stderr=False):
|
||||
"""Executes specified command for the given action."""
|
||||
cmd = shlex.split(cmd.encode('utf-8'))
|
||||
cmdlist = shlex.split(cmd.encode('utf-8'))
|
||||
result = ''
|
||||
result_err = ''
|
||||
stdout = subprocess.PIPE
|
||||
stderr = subprocess.STDOUT if merge_stderr else subprocess.PIPE
|
||||
proc = subprocess.Popen(cmd, stdout=stdout, stderr=stderr)
|
||||
proc = subprocess.Popen(cmdlist, stdout=stdout, stderr=stderr)
|
||||
result, result_err = proc.communicate()
|
||||
if not fail_ok and proc.returncode != 0:
|
||||
raise exceptions.CommandFailed(proc.returncode, cmd, result,
|
||||
@ -50,6 +50,33 @@ class TestCase(testtools.TestCase):
|
||||
"""Executes openstackclient command for the given action."""
|
||||
return execute('openstack ' + cmd, fail_ok=fail_ok)
|
||||
|
||||
@classmethod
|
||||
def get_show_opts(cls, fields=[]):
|
||||
return ' -f value ' + ' '.join(['-c ' + it for it in fields])
|
||||
|
||||
@classmethod
|
||||
def get_list_opts(cls, headers=[]):
|
||||
opts = ' -f csv --quote none '
|
||||
opts = opts + ' '.join(['-c ' + it for it in headers])
|
||||
return opts
|
||||
|
||||
@classmethod
|
||||
def assertOutput(cls, expected, actual):
|
||||
if expected != actual:
|
||||
raise Exception(expected + ' != ' + actual)
|
||||
|
||||
@classmethod
|
||||
def assertInOutput(cls, expected, actual):
|
||||
if expected not in actual:
|
||||
raise Exception(expected + ' not in ' + actual)
|
||||
|
||||
@classmethod
|
||||
def cleanup_tmpfile(cls, filename):
|
||||
try:
|
||||
os.remove(filename)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
def assert_table_structure(self, items, field_names):
|
||||
"""Verify that all items have keys listed in field_names."""
|
||||
for item in items:
|
||||
|
42
functional/tests/object/v1/test_container.py
Normal file
42
functional/tests/object/v1/test_container.py
Normal file
@ -0,0 +1,42 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import uuid
|
||||
|
||||
from functional.common import test
|
||||
|
||||
|
||||
class ContainerTests(test.TestCase):
|
||||
"""Functional tests for object containers. """
|
||||
NAME = uuid.uuid4().hex
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
opts = cls.get_list_opts(['container'])
|
||||
raw_output = cls.openstack('container create ' + cls.NAME + opts)
|
||||
expected = 'container\n' + cls.NAME + '\n'
|
||||
cls.assertOutput(expected, raw_output)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
raw_output = cls.openstack('container delete ' + cls.NAME)
|
||||
cls.assertOutput('', raw_output)
|
||||
|
||||
def test_container_list(self):
|
||||
opts = self.get_list_opts(['Name'])
|
||||
raw_output = self.openstack('container list' + opts)
|
||||
self.assertIn(self.NAME, raw_output)
|
||||
|
||||
def test_container_show(self):
|
||||
opts = self.get_show_opts(['container'])
|
||||
raw_output = self.openstack('container show ' + self.NAME + opts)
|
||||
self.assertEqual(self.NAME + "\n", raw_output)
|
Loading…
Reference in New Issue
Block a user