summaryrefslogtreecommitdiff
path: root/glanceclient
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-04-12 17:17:19 +0000
committerGerrit Code Review <review@openstack.org>2018-04-12 17:17:19 +0000
commit94aa58e89e9c86eb29c482c4ca8f40a29033f3f2 (patch)
tree115330c148c4f235275d91aaf1a680144a06bf7f /glanceclient
parenta8003eced789d225a47f1cfdbd03e92fd39546f8 (diff)
parent32b83078194f40e0d3445d95cf04ce97091fd229 (diff)
downloadpython-glanceclient-94aa58e89e9c86eb29c482c4ca8f40a29033f3f2.tar.gz
Merge "Split glanceclient functional tests"
Diffstat (limited to 'glanceclient')
-rw-r--r--glanceclient/tests/functional/base.py3
-rw-r--r--glanceclient/tests/functional/v1/__init__.py0
-rw-r--r--glanceclient/tests/functional/v1/test_readonly_glance.py73
-rw-r--r--glanceclient/tests/functional/v2/__init__.py0
-rw-r--r--glanceclient/tests/functional/v2/test_http_headers.py (renamed from glanceclient/tests/functional/test_http_headers.py)0
-rw-r--r--glanceclient/tests/functional/v2/test_readonly_glance.py (renamed from glanceclient/tests/functional/test_readonly_glance.py)15
6 files changed, 75 insertions, 16 deletions
diff --git a/glanceclient/tests/functional/base.py b/glanceclient/tests/functional/base.py
index 0efc079..578dc39 100644
--- a/glanceclient/tests/functional/base.py
+++ b/glanceclient/tests/functional/base.py
@@ -48,9 +48,10 @@ class ClientTestBase(base.ClientTestBase):
def _get_clients(self):
self.creds = credentials().get_auth_args()
+ venv_name = os.environ.get('OS_TESTENV_NAME', 'functional')
cli_dir = os.environ.get(
'OS_GLANCECLIENT_EXEC_DIR',
- os.path.join(os.path.abspath('.'), '.tox/functional/bin'))
+ os.path.join(os.path.abspath('.'), '.tox/%s/bin' % venv_name))
return base.CLIClient(
username=self.creds['username'],
diff --git a/glanceclient/tests/functional/v1/__init__.py b/glanceclient/tests/functional/v1/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/glanceclient/tests/functional/v1/__init__.py
diff --git a/glanceclient/tests/functional/v1/test_readonly_glance.py b/glanceclient/tests/functional/v1/test_readonly_glance.py
new file mode 100644
index 0000000..122c61b
--- /dev/null
+++ b/glanceclient/tests/functional/v1/test_readonly_glance.py
@@ -0,0 +1,73 @@
+# 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 re
+
+from tempest.lib import exceptions
+
+from glanceclient.tests.functional import base
+
+
+class SimpleReadOnlyGlanceClientTest(base.ClientTestBase):
+
+ """Read only functional python-glanceclient tests.
+
+ This only exercises client commands that are read only.
+ """
+
+ def test_list_v1(self):
+ out = self.glance('--os-image-api-version 1 image-list')
+ endpoints = self.parser.listing(out)
+ self.assertTableStruct(endpoints, [
+ 'ID', 'Name', 'Disk Format', 'Container Format',
+ 'Size', 'Status'])
+
+ def test_fake_action(self):
+ self.assertRaises(exceptions.CommandFailed,
+ self.glance,
+ 'this-does-not-exist')
+
+ def test_member_list_v1(self):
+ tenant_name = '--tenant-id %s' % self.creds['project_name']
+ out = self.glance('--os-image-api-version 1 member-list',
+ params=tenant_name)
+ endpoints = self.parser.listing(out)
+ self.assertTableStruct(endpoints,
+ ['Image ID', 'Member ID', 'Can Share'])
+
+ def test_help(self):
+ help_text = self.glance('--os-image-api-version 1 help')
+ lines = help_text.split('\n')
+ self.assertFirstLineStartsWith(lines, 'usage: glance')
+
+ commands = []
+ cmds_start = lines.index('Positional arguments:')
+ cmds_end = lines.index('Optional arguments:')
+ command_pattern = re.compile('^ {4}([a-z0-9\-\_]+)')
+ for line in lines[cmds_start:cmds_end]:
+ match = command_pattern.match(line)
+ if match:
+ commands.append(match.group(1))
+ commands = set(commands)
+ wanted_commands = {'bash-completion', 'help',
+ 'image-create', 'image-delete',
+ 'image-download', 'image-list',
+ 'image-show', 'image-update',
+ 'member-create', 'member-delete',
+ 'member-list'}
+ self.assertEqual(commands, wanted_commands)
+
+ def test_version(self):
+ self.glance('', flags='--version')
+
+ def test_debug_list(self):
+ self.glance('--os-image-api-version 1 image-list', flags='--debug')
diff --git a/glanceclient/tests/functional/v2/__init__.py b/glanceclient/tests/functional/v2/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/glanceclient/tests/functional/v2/__init__.py
diff --git a/glanceclient/tests/functional/test_http_headers.py b/glanceclient/tests/functional/v2/test_http_headers.py
index 1596444..1596444 100644
--- a/glanceclient/tests/functional/test_http_headers.py
+++ b/glanceclient/tests/functional/v2/test_http_headers.py
diff --git a/glanceclient/tests/functional/test_readonly_glance.py b/glanceclient/tests/functional/v2/test_readonly_glance.py
index ccd49d6..c024303 100644
--- a/glanceclient/tests/functional/test_readonly_glance.py
+++ b/glanceclient/tests/functional/v2/test_readonly_glance.py
@@ -24,13 +24,6 @@ class SimpleReadOnlyGlanceClientTest(base.ClientTestBase):
This only exercises client commands that are read only.
"""
- def test_list_v1(self):
- out = self.glance('--os-image-api-version 1 image-list')
- endpoints = self.parser.listing(out)
- self.assertTableStruct(endpoints, [
- 'ID', 'Name', 'Disk Format', 'Container Format',
- 'Size', 'Status'])
-
def test_list_v2(self):
out = self.glance('--os-image-api-version 2 image-list')
endpoints = self.parser.listing(out)
@@ -41,14 +34,6 @@ class SimpleReadOnlyGlanceClientTest(base.ClientTestBase):
self.glance,
'this-does-not-exist')
- def test_member_list_v1(self):
- tenant_name = '--tenant-id %s' % self.creds['project_name']
- out = self.glance('--os-image-api-version 1 member-list',
- params=tenant_name)
- endpoints = self.parser.listing(out)
- self.assertTableStruct(endpoints,
- ['Image ID', 'Member ID', 'Can Share'])
-
def test_member_list_v2(self):
try:
# NOTE(flwang): If set disk-format and container-format, Jenkins