Files
python-novaclient/novaclient/tests/functional
Matt Riedemann 617eb742ab Adjust test_resize_down_revert to account for counting quotas
Change I9269ffa2b80e48db96c622d0dc0817738854f602 in the Nova
server removes the need for reservations, which means that
once the server is resized in nova-compute and the vcpus and
memory_mb are changed on the instances record, the usage count
will also change, before the resize is confirmed. This means
we need to adjust the usage assertions in the resize down test.
Usage changes once the server is in VERIFY_RESIZE state, and
the usage will change again if the resize is reverted.

Note that if we were getting usage without the 'reserved'
query paramter to the 'limits' API, the behavior would have
been the same regardless of the change to Nova for counting
quotas.

Depends-On: I9269ffa2b80e48db96c622d0dc0817738854f602

Related to blueprint cells-count-resources-to-check-quota-in-api

Change-Id: I91ca0d204454987dcce1c68d9bf0f532b469df6d
2017-07-19 18:49:10 -04:00
..
2017-04-03 13:17:25 -04:00
2016-07-11 15:53:55 -04:00

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