1
This directory provides Amulet tests that focus on verification of
2
neutron-openvswitch deployments.
4
In order to run tests, you'll need charm-tools installed (in addition to
1
This directory provides Amulet tests to verify basic deployment functionality
2
from the perspective of this charm, its requirements and its features, as
3
exercised in a subset of the full OpenStack deployment test bundle topology.
5
Reference: lp:openstack-charm-testing for full test bundles.
7
A single topology and configuration is defined and deployed, once for each of
8
the defined Ubuntu:OpenStack release combos. The ongoing goal is for this
9
charm to always possess tests and combo definitions for all currently-supported
10
release combinations of U:OS.
12
test_* methods are called in lexical sort order, as with most runners. However,
13
each individual test method should be idempotent and expected to pass regardless
14
of run order or Ubuntu:OpenStack combo. When writing or modifying tests,
15
ensure that every individual test is not dependent on another test_ method.
17
Test naming convention, purely for code organization purposes:
18
1xx service and endpoint checks
22
9xx restarts, config changes, actions and other final checks
24
In order to run tests, charm-tools and juju must be installed:
6
25
sudo add-apt-repository ppa:juju/stable
8
sudo apt-get install charm-tools
10
If you use a web proxy server to access the web, you'll need to set the
11
AMULET_HTTP_PROXY environment variable to the http URL of the proxy server.
27
sudo apt-get install charm-tools juju juju-deployer amulet
29
Alternatively, tests may be exercised with proposed or development versions
30
of juju and related tools:
32
# juju proposed version
33
sudo add-apt-repository ppa:juju/proposed
35
sudo apt-get install charm-tools juju juju-deployer
37
# juju development version
38
sudo add-apt-repository ppa:juju/devel
40
sudo apt-get install charm-tools juju juju-deployer
42
Some tests may need to download files. If a web proxy server is required in
43
the environment, the AMULET_HTTP_PROXY environment variable must be set and
44
passed into the juju test command. This is unrelated to juju's http proxy
13
47
The following examples demonstrate different ways that tests can be executed.
14
48
All examples are run from the charm's root directory.
16
* To run all tests (starting with 00-setup):
20
* To run a specific test module (or modules):
22
juju test -v -p AMULET_HTTP_PROXY 15-basic-trusty-icehouse
24
* To run a specific test module (or modules), and keep the environment
25
deployed after a failure:
27
juju test --set-e -v -p AMULET_HTTP_PROXY 15-basic-trusty-icehouse
50
* To run all +x tests in the tests directory:
52
bzr branch lp:charms/trusty/foo
56
* To run the tests against a specific release combo as defined in tests/:
58
bzr branch lp:charms/trusty/foo
60
juju test -v -p AMULET_HTTP_PROXY 015-basic-trusty-icehouse
62
* To run tests and keep the juju environment deployed after a failure:
64
bzr branch lp:charms/trusty/foo
66
juju test --set-e -v -p AMULET_HTTP_PROXY 015-basic-trusty-icehouse
29
68
* To re-run a test module against an already deployed environment (one
30
69
that was deployed by a previous call to 'juju test --set-e'):
32
./tests/15-basic-trusty-icehouse
34
For debugging and test development purposes, all code should be idempotent.
35
In other words, the code should have the ability to be re-run without changing
36
the results beyond the initial run. This enables editing and re-running of a
37
test module against an already deployed environment, as described above.
39
Manual debugging tips:
41
* Set the following env vars before using the OpenStack CLI as admin:
42
export OS_AUTH_URL=http://`juju-deployer -f keystone 2>&1 | tail -n 1`:5000/v2.0
43
export OS_TENANT_NAME=admin
71
./tests/015-basic-trusty-icehouse
73
* Even with --set-e, `juju test` will tear down the deployment when all
74
tests pass. The following work flow may be more effective when
75
iterating on test writing.
77
bzr branch lp:charms/trusty/foo
79
./tests/setup/00-setup
81
./tests/015-basic-trusty-icehouse
82
# make some changes, run tests again
83
./tests/015-basic-trusty-icehouse
84
# make some changes, run tests again
85
./tests/015-basic-trusty-icehouse
87
* There may be test definitions in the tests/ dir which are not set +x
88
executable. This is generally true for deprecated releases, or for
89
upcoming releases which are not yet validated and enabled. To enable
91
bzr branch lp:charms/trusty/foo
94
chmod +x tests/017-basic-trusty-kilo
95
./tests/setup/00-setup
97
./tests/017-basic-trusty-kilo
102
* Use DEBUG to turn on debug logging, use ERROR otherwise.
103
u = OpenStackAmuletUtils(ERROR)
104
u = OpenStackAmuletUtils(DEBUG)
106
* To interact with the deployed environment:
44
107
export OS_USERNAME=admin
45
108
export OS_PASSWORD=openstack
46
export OS_REGION_NAME=RegionOne
48
* Set the following env vars before using the OpenStack CLI as demoUser:
49
export OS_AUTH_URL=http://`juju-deployer -f keystone 2>&1 | tail -n 1`:5000/v2.0
50
export OS_TENANT_NAME=demoTenant
51
export OS_USERNAME=demoUser
52
export OS_PASSWORD=password
53
export OS_REGION_NAME=RegionOne
109
export OS_TENANT_NAME=admin
110
export OS_REGION_NAME=RegionOne
111
export OS_AUTH_URL=${OS_AUTH_PROTOCOL:-http}://`juju-deployer -e trusty -f keystone`:5000/v2.0