05d6b57348
* Makefile: - Run flake8 on tests dir - Only run precise-icehouse and trusty-icehouse tests by default and increase test timeout - Fix charm-helpers sync target * t/00-setup: Simplify dependencies install * t/README: Mention charm-tools dependency * t/basic_deployment.py: - Turn off debugging (OpenStackAmuletUtils(ERROR)) - Specify unstable charm deployment - Use dicts in add_services - Rename restart test - Cleanup on restart test failure - Drop fake fail debug function
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
This directory provides Amulet tests that focus on verification of Cinder
|
|
deployments.
|
|
|
|
In order to run tests, you'll need charm-tools installed (in addition to
|
|
juju, of course):
|
|
sudo add-apt-repository ppa:juju/stable
|
|
sudo apt-get update
|
|
sudo apt-get install charm-tools
|
|
|
|
If you use a web proxy server to access the web, you'll need to set the
|
|
AMULET_HTTP_PROXY environment variable to the http URL of the proxy server.
|
|
|
|
The following examples demonstrate different ways that tests can be executed.
|
|
All examples are run from the charm's root directory.
|
|
|
|
* To run all tests (starting with 00-setup):
|
|
|
|
make test
|
|
|
|
* To run a specific test module (or modules):
|
|
|
|
juju test -v -p AMULET_HTTP_PROXY 15-basic-trusty-icehouse
|
|
|
|
* To run a specific test module (or modules), and keep the environment
|
|
deployed after a failure:
|
|
|
|
juju test --set-e -v -p AMULET_HTTP_PROXY 15-basic-trusty-icehouse
|
|
|
|
* To re-run a test module against an already deployed environment (one
|
|
that was deployed by a previous call to 'juju test --set-e'):
|
|
|
|
./tests/15-basic-trusty-icehouse
|
|
|
|
|
|
For debugging and test development purposes, all code should be idempotent.
|
|
In other words, the code should have the ability to be re-run without changing
|
|
the results beyond the initial run. This enables editing and re-running of a
|
|
test module against an already deployed environment, as described above.
|
|
|
|
Additional testing and debug information:
|
|
|
|
* Use DEBUG to turn on debug logging, use ERROR otherwise.
|
|
|
|
u = OpenStackAmuletUtils(ERROR)
|
|
u = OpenStackAmuletUtils(DEBUG)
|
|
|
|
* To interact with the deployed environment:
|
|
|
|
export OS_USERNAME=admin
|
|
export OS_PASSWORD=openstack
|
|
export OS_TENANT_NAME=admin
|
|
export OS_REGION_NAME=RegionOne
|
|
export OS_AUTH_URL=${OS_AUTH_PROTOCOL:-http}://`juju-deployer -e trusty -f keystone`:5000/v2.0
|
|
keystone user-list
|
|
cinder list
|
|
|
|
* Handy commands for watching these tests run or manually poking around:
|
|
|
|
watch "cinder list && cinder snapshot-list && glance image-list"
|
|
watch "juju get cinder | egrep 'verbose|debug|true|false'"
|
|
watch "juju ssh cinder/0 'sudo lvs && sudo status cinder-api && sudo status cinder-volume'"
|
|
juju set cinder verbose=false && juju set cinder debug=false
|
|
|
|
* Be aware that method names that start with 'test_' are called in alpha/num
|
|
order. Test methods which are order-sensitive can be numbered to ensure
|
|
that they run in the expected order. ex:
|
|
|
|
test_000_earlytest
|
|
test_300_sometest
|
|
test_999_latertest
|
|
|
|
* Preserving the deployed environment:
|
|
Even with juju --set-e, amulet will tear down the juju environment
|
|
when all tests pass. This force_fail 'test' can be used in basic_deployment.py
|
|
to simulate a failed test and keep the environment.
|
|
|
|
def test_zzzz_fake_fail(self):
|
|
'''Force a fake fail to keep juju environment after a successful test run'''
|
|
# Useful in test writing, when used with: juju test --set-e
|
|
amulet.raise_status(amulet.FAIL, msg='using fake fail to keep juju environment')
|