python-novaclient/novaclient/tests/functional
Dan Smith 41aeb89cae Fix aggregate_update name and availability_zone clash
The name and availability_zone arguments to aggregate update were
replaced by optional parameters in change
I778ab7ec54a376c60f19dcc89fe62fcab6e59e42. However, the '--name' and
'name' arguments in the parser would conflict, resulting in only the
deprecated argument working. Thus, attempting to update the name
on an aggregate using --name would end up doing a PUT with no new
name provided.

Note that there were unit tests for this, but they were not catching
this problem. So, this removes those tests and adds functional tests
to poke it.

Change-Id: Ifef6fdc1a737dd219712a4525d4e34afd3fbd80c
Closes-Bug: #1673789
(cherry picked from commit 20f00553d0)
(cherry picked from commit 983f7211a8)
2017-10-03 20:43:47 +00:00
..
api Allow to specify a network for functional tests 2016-02-16 12:43:04 +01:00
hooks Make functional tests work with v3 keystone 2016-04-12 17:24:41 +03:00
v2 Fix aggregate_update name and availability_zone clash 2017-10-03 20:43:47 +00:00
README.rst Fix running functional tests against deployment with insecure SSL 2016-02-08 17:51:47 +01:00
__init__.py First pass at tempest_lib based functional testing 2015-01-28 15:44:43 -08:00
base.py Merge "[functional] Do not discover same resources for every test" 2016-08-25 12:00:49 +00:00
clouds.yaml.sample Update clouds.yaml.sample 2016-07-11 15:53:55 -04:00
test_auth.py functional: fix a deprecation warning in test_auth.TestAuthentication 2016-07-01 15:43:57 +03:00

README.rst

python-novaclient functional testing

Idea

Over time we have noticed two issues with novaclient unit tests.

  • Does not exercise the CLI
  • We can get the expected server behavior wrong, and test the wrong thing.

We are using functional tests, run against a running cloud (primarily devstack), to address these two cases.

Additionally these functional tests can be considered example uses of python-novaclient.

These tests started out in tempest as read only nova CLI tests, to make sure the CLI didn't simply stacktrace when being used (which happened on multiple occasions).

Testing Theory

We are treating python-novaclient as legacy code, so we do not want to spend a lot of effort adding in missing features. In the future the CLI will move to python-openstackclient, and the python API will be based on the OpenStack SDK project. But until that happens we still need better functional testing, to prevent regressions etc.

Since python-novaclient has two uses, CLI and python API, we should have two sets of functional tests. CLI and python API. The python API tests should never use the CLI. But the CLI tests can use the python API where adding native support to the CLI for the required functionality would involve a non trivial amount of work.

Functional Test Guidelines

  • Consume credentials via standard client environmental variables:

    OS_USERNAME
    OS_PASSWORD
    OS_TENANT_NAME
    OS_AUTH_URL
  • Usage of insecure SSL can be configured via the standard client environment variable:

    OS_INSECURE
  • Try not to require an additional configuration file