diff options
| author | Steve Martinelli <s.martinelli@gmail.com> | 2016-09-05 20:35:06 -0700 |
|---|---|---|
| committer | Steve Martinelli <s.martinelli@gmail.com> | 2016-09-09 03:29:47 +0000 |
| commit | c14d3efe6162a58cb3cdcb2834ad2508e2525018 (patch) | |
| tree | 084f7a998a410957299db58a2449dbfb1dce20a9 /openstackclient/tests/functional/common | |
| parent | 39839def2e356e8d145be89380c73a71423cf06d (diff) | |
| download | python-openstackclient-c14d3efe6162a58cb3cdcb2834ad2508e2525018.tar.gz | |
move all functional tests to tests module
functional tests should be grouped with other tests (unit and
integration tests). as part of this commit the "common" module
was renamed to just "base", this was done for simplicity.
the post_test_hook.sh file was also copied to the functional module
since it should live there. a separate change to the infra repo
will be made to call the new location, once that is merged we
can remove the old one (a new change will also be posted for that)
Needed-By: I49d54f009021d65c1ae49faf6b3f0a7acdadd7b3
Change-Id: Ie8c334f6223373b8e06df8bd8466500d2a2c8ede
Diffstat (limited to 'openstackclient/tests/functional/common')
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) |
