diff options
| author | TerryHowe <terrylhowe@gmail.com> | 2015-04-29 05:11:58 -0600 |
|---|---|---|
| committer | Terry Howe <terrylhowe@gmail.com> | 2015-05-17 12:33:39 +0000 |
| commit | 29f29e44d3ed894ebac5fe26d4410bd31149145a (patch) | |
| tree | d78047d67387c7178690f77f36101c9f5e5c30be /functional | |
| parent | d39b9c91c4801753895fac8047aa2371a63bb96a (diff) | |
| download | python-openstackclient-29f29e44d3ed894ebac5fe26d4410bd31149145a.tar.gz | |
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
Diffstat (limited to 'functional')
| -rw-r--r-- | functional/common/test.py | 31 | ||||
| -rw-r--r-- | functional/tests/object/v1/test_container.py | 42 |
2 files changed, 71 insertions, 2 deletions
diff --git a/functional/common/test.py b/functional/common/test.py index 4a92def0..7beaf39a 100644 --- a/functional/common/test.py +++ b/functional/common/test.py @@ -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: diff --git a/functional/tests/object/v1/test_container.py b/functional/tests/object/v1/test_container.py new file mode 100644 index 00000000..9ea14cde --- /dev/null +++ b/functional/tests/object/v1/test_container.py @@ -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) |
