diff options
Diffstat (limited to 'glanceclient/tests/functional/v1/test_readonly_glance.py')
-rw-r--r-- | glanceclient/tests/functional/v1/test_readonly_glance.py | 73 |
1 files changed, 73 insertions, 0 deletions
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') |