First pass at tempest_lib based functional testing
Begin moving tempest nova CLI tests out of tempest and into this repo using tempest-lib. This patch adds the framework to run the functional tests, later patches will port the existing tempest tests. Use standard OpenStack environment variables to get keystone auth Change-Id: Ie957bd450bfed97b63788cfb488f92988fbbc889
This commit is contained in:
parent
f197c64e05
commit
b89da9be28
0
novaclient/tests/functional/__init__.py
Normal file
0
novaclient/tests/functional/__init__.py
Normal file
44
novaclient/tests/functional/base.py
Normal file
44
novaclient/tests/functional/base.py
Normal file
@ -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 tempest_lib.cli import base
|
||||
|
||||
|
||||
class ClientTestBase(base.ClientTestBase):
|
||||
"""
|
||||
This is a first pass at a simple read only python-novaclient test. This
|
||||
only exercises client commands that are read only.
|
||||
|
||||
This should test commands:
|
||||
* as a regular user
|
||||
* as a admin user
|
||||
* with and without optional parameters
|
||||
* initially just check return codes, and later test command outputs
|
||||
|
||||
"""
|
||||
def _get_clients(self):
|
||||
cli_dir = os.environ.get(
|
||||
'OS_NOVACLIENT_EXEC_DIR',
|
||||
os.path.join(os.path.abspath('.'), '.tox/functional/bin'))
|
||||
|
||||
return base.CLIClient(
|
||||
username=os.environ.get('OS_USERNAME'),
|
||||
password=os.environ.get('OS_PASSWORD'),
|
||||
tenant_name=os.environ.get('OS_TENANT_NAME'),
|
||||
uri=os.environ.get('OS_AUTH_URL'),
|
||||
cli_dir=cli_dir)
|
||||
|
||||
def nova(self, *args, **kwargs):
|
||||
return self.clients.nova(*args,
|
||||
**kwargs)
|
51
novaclient/tests/functional/test_readonly_nova.py
Normal file
51
novaclient/tests/functional/test_readonly_nova.py
Normal file
@ -0,0 +1,51 @@
|
||||
# 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 tempest_lib import exceptions
|
||||
|
||||
from novaclient.tests.functional import base
|
||||
|
||||
|
||||
class SimpleReadOnlyNovaClientTest(base.ClientTestBase):
|
||||
|
||||
"""
|
||||
This is a first pass at a simple read only python-novaclient test. This
|
||||
only exercises client commands that are read only.
|
||||
|
||||
This should test commands:
|
||||
* as a regular user
|
||||
* as a admin user
|
||||
* with and without optional parameters
|
||||
* initially just check return codes, and later test command outputs
|
||||
|
||||
"""
|
||||
|
||||
def test_admin_fake_action(self):
|
||||
self.assertRaises(exceptions.CommandFailed,
|
||||
self.nova,
|
||||
'this-does-nova-exist')
|
||||
|
||||
# NOTE(jogo): Commands in order listed in 'nova help'
|
||||
|
||||
# Optional arguments:
|
||||
|
||||
def test_admin_version(self):
|
||||
self.nova('', flags='--version')
|
||||
|
||||
def test_admin_debug_list(self):
|
||||
self.nova('list', flags='--debug')
|
||||
|
||||
def test_admin_timeout(self):
|
||||
self.nova('list', flags='--timeout %d' % 10)
|
||||
|
||||
def test_admin_timing(self):
|
||||
self.nova('list', flags='--timing')
|
@ -14,3 +14,4 @@ oslosphinx>=2.2.0 # Apache-2.0
|
||||
testrepository>=0.0.18
|
||||
testscenarios>=0.4
|
||||
testtools>=0.9.36,!=1.2.0
|
||||
tempest-lib>=0.1.0
|
||||
|
Loading…
Reference in New Issue
Block a user