python-novaclient/novaclient/tests/functional
Matt Riedemann 0e7c99c8ea Add --migration-type and --source-compute to migration-list
The GET /os-migrations API take a migration_type and source_compute
filter parameter on the request since the v2.0 API. This adds support
for specifying those parameters in the "nova migration-list" CLI
and related MigrationManager.list() python API binding methods.

A functional test is added which will cover the new options on all
three of the decorated do_migration_list shell methods with lower
bounds on 2.1, 2.59 and 2.66. Since the only type of migration we
can safely generate in a single-node CI job is a resize the test
does a resize. As such, _pick_alternate_flavor is moved into the
base test class for re-use.

Implements blueprint more-migration-list-filters

Change-Id: I4be9a06df3e0d40d3990d067ce112247a81b45b4
2019-08-08 18:13:33 -04:00
..
api Remove deprecated network APIs 2017-04-03 13:17:25 -04:00
hooks [ci] Use pseudo-random names for new resources 2017-11-23 16:52:04 +00:00
v2 Add --migration-type and --source-compute to migration-list 2019-08-08 18:13:33 -04: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 Add --migration-type and --source-compute to migration-list 2019-08-08 18:13:33 -04:00
clouds.yaml.sample Update clouds.yaml.sample 2016-07-11 15:53:55 -04:00
test_auth.py [CLI] Fix token auth type 2018-04-19 18:43:45 +00: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