summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/common
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/functional/common')
-rw-r--r--openstackclient/tests/functional/common/__init__.py0
-rw-r--r--openstackclient/tests/functional/common/test_availability_zone.py25
-rw-r--r--openstackclient/tests/functional/common/test_configuration.py44
-rw-r--r--openstackclient/tests/functional/common/test_help.py66
-rw-r--r--openstackclient/tests/functional/common/test_quota.py42
5 files changed, 177 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/common/__init__.py b/openstackclient/tests/functional/common/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/openstackclient/tests/functional/common/__init__.py
diff --git a/openstackclient/tests/functional/common/test_availability_zone.py b/openstackclient/tests/functional/common/test_availability_zone.py
new file mode 100644
index 00000000..f73e1ed9
--- /dev/null
+++ b/openstackclient/tests/functional/common/test_availability_zone.py
@@ -0,0 +1,25 @@
+# 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.
+
+from openstackclient.tests.functional import base
+
+
+class AvailabilityZoneTests(base.TestCase):
+ """Functional tests for availability zone. """
+ HEADERS = ["'Zone Name'"]
+ # So far, all components have the same default availability zone name.
+ DEFAULT_AZ_NAME = 'nova'
+
+ def test_availability_zone_list(self):
+ opts = self.get_opts(self.HEADERS)
+ raw_output = self.openstack('availability zone list' + opts)
+ self.assertIn(self.DEFAULT_AZ_NAME, raw_output)
diff --git a/openstackclient/tests/functional/common/test_configuration.py b/openstackclient/tests/functional/common/test_configuration.py
new file mode 100644
index 00000000..f47d3b00
--- /dev/null
+++ b/openstackclient/tests/functional/common/test_configuration.py
@@ -0,0 +1,44 @@
+# 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 os
+
+from openstackclient.common import configuration
+from openstackclient.tests.functional import base
+
+
+BASIC_CONFIG_HEADERS = ['Field', 'Value']
+
+
+class ConfigurationTests(base.TestCase):
+
+ opts = "-f value -c auth.password"
+
+ def test_configuration_show(self):
+ raw_output = self.openstack('configuration show')
+ items = self.parse_listing(raw_output)
+ self.assert_table_structure(items, BASIC_CONFIG_HEADERS)
+
+ def test_configuration_show_unmask(self):
+ raw_output = self.openstack('configuration show --unmask ' + self.opts)
+ # If we are using os-client-config, this will not be set. Rather than
+ # parse clouds.yaml to get the right value, just make sure
+ # we are not getting redacted.
+ passwd = os.environ.get('OS_PASSWORD')
+ if passwd:
+ self.assertEqual(passwd + '\n', raw_output)
+ else:
+ self.assertNotEqual(configuration.REDACTED + '\n', raw_output)
+
+ def test_configuration_show_mask(self):
+ raw_output = self.openstack('configuration show --mask ' + self.opts)
+ self.assertEqual(configuration.REDACTED + '\n', raw_output)
diff --git a/openstackclient/tests/functional/common/test_help.py b/openstackclient/tests/functional/common/test_help.py
new file mode 100644
index 00000000..bbc52197
--- /dev/null
+++ b/openstackclient/tests/functional/common/test_help.py
@@ -0,0 +1,66 @@
+# 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.
+
+from openstackclient.tests.functional import base
+
+
+class HelpTests(base.TestCase):
+ """Functional tests for openstackclient help output."""
+
+ SERVER_COMMANDS = [
+ ('server add security group', 'Add security group to server'),
+ ('server add volume', 'Add volume to server'),
+ ('server backup create', 'Create a server backup image'),
+ ('server create', 'Create a new server'),
+ ('server delete', 'Delete server(s)'),
+ ('server dump create', 'Create a dump file in server(s)'),
+ ('server image create',
+ 'Create a new server disk image from an existing server'),
+ ('server list', 'List servers'),
+ ('server lock',
+ 'Lock server(s). '
+ 'A non-admin user will not be able to execute actions'),
+ ('server migrate', 'Migrate server to different host'),
+ ('server pause', 'Pause server(s)'),
+ ('server reboot', 'Perform a hard or soft server reboot'),
+ ('server rebuild', 'Rebuild server'),
+ ('server remove security group', 'Remove security group from server'),
+ ('server remove volume', 'Remove volume from server'),
+ ('server rescue', 'Put server in rescue mode'),
+ ('server resize', 'Scale server to a new flavor'),
+ ('server resume', 'Resume server(s)'),
+ ('server set', 'Set server properties'),
+ ('server shelve', 'Shelve server(s)'),
+ ('server show', 'Show server details'),
+ ('server ssh', 'SSH to server'),
+ ('server start', 'Start server(s).'),
+ ('server stop', 'Stop server(s).'),
+ ('server suspend', 'Suspend server(s)'),
+ ('server unlock', 'Unlock server(s)'),
+ ('server unpause', 'Unpause server(s)'),
+ ('server unrescue', 'Restore server from rescue mode'),
+ ('server unset', 'Unset server properties'),
+ ('server unshelve', 'Unshelve server(s)')
+ ]
+
+ def test_server_commands_main_help(self):
+ """Check server commands in main help message."""
+ raw_output = self.openstack('help')
+ for command, description in self.SERVER_COMMANDS:
+ self.assertIn(command, raw_output)
+ self.assertIn(description, raw_output)
+
+ def test_server_only_help(self):
+ """Check list of server-related commands only."""
+ raw_output = self.openstack('help server')
+ for command in [row[0] for row in self.SERVER_COMMANDS]:
+ self.assertIn(command, raw_output)
diff --git a/openstackclient/tests/functional/common/test_quota.py b/openstackclient/tests/functional/common/test_quota.py
new file mode 100644
index 00000000..fd45be38
--- /dev/null
+++ b/openstackclient/tests/functional/common/test_quota.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.
+
+from openstackclient.tests.functional import base
+
+
+class QuotaTests(base.TestCase):
+ """Functional tests for quota. """
+ # Test quota information for compute, network and volume.
+ EXPECTED_FIELDS = ['instances', 'networks', 'volumes']
+ PROJECT_NAME = None
+
+ @classmethod
+ def setUpClass(cls):
+ cls.PROJECT_NAME =\
+ cls.get_openstack_configuration_value('auth.project_name')
+
+ def test_quota_set(self):
+ self.openstack('quota set --instances 11 --volumes 11 --networks 11 '
+ + self.PROJECT_NAME)
+ opts = self.get_opts(self.EXPECTED_FIELDS)
+ raw_output = self.openstack('quota show ' + self.PROJECT_NAME + opts)
+ self.assertEqual("11\n11\n11\n", raw_output)
+
+ def test_quota_show(self):
+ raw_output = self.openstack('quota show ' + self.PROJECT_NAME)
+ for expected_field in self.EXPECTED_FIELDS:
+ self.assertIn(expected_field, raw_output)
+
+ def test_quota_show_default_project(self):
+ raw_output = self.openstack('quota show')
+ for expected_field in self.EXPECTED_FIELDS:
+ self.assertIn(expected_field, raw_output)