tempest/tempest/tests
Matthew Treinish 9cf0703f20
Add unit tests to check for CONF getattr during import
Since the early days in tempest we've been fighting getattrs on CONF
during imports. We're able to get around this during test runs by lazy
loading the conf file. However, in things like the tempest commands this
doesn't work because we rely on the config file not being parsed to set
the config file path. This commit adds unit tests to check the import
of the command files for getattrs on CONF. This should prevent future
regressions.

While not strictly necessary because of the lazy loading this also gives
a framework to potentially address the CONF getatrr on discovery. The
first revision of this patch includes the discovery test, for reference.
But we have 212 cases of getattr during import (which includes lots of
skip decorators) so it's unlikely to change any time soon.

Change-Id: Ib2c15dbd06ca810cc899258758cc8a297055fdf8
Closes-Bug: #1726357
2017-10-26 18:08:51 -04:00
..
api Compute images via addClassResourceCleanup 2017-09-13 23:16:46 +00:00
cmd Don't read config in cred_factory module 2017-10-24 08:42:29 +02:00
common Don't read config in cred_factory module 2017-10-24 08:42:29 +02:00
files Fix author information 2014-02-24 19:19:22 +09:00
lib Merge "Remove method get_ipv6_addr_by_EUI64" 2017-10-25 05:35:52 +00:00
services/object_storage Move the object client to tempest.lib 2017-10-17 00:14:20 +00:00
README.rst Doc: fix markups, capitalization and add 2 REVIEWING advices 2017-07-11 20:26:32 +02:00
__init__.py Add unittest framework + tests for wrapper scripts 2013-08-27 11:55:13 -04:00
base.py Fix base unit test class location 2016-04-22 18:11:30 -04:00
fake_config.py Remove some debug print statements 2017-04-19 16:14:26 +02:00
fake_tempest_plugin.py Service Clients registration interface for plugins 2016-07-26 22:52:33 +01:00
test_base_test.py Don't read config in cred_factory module 2017-10-24 08:42:29 +02:00
test_config.py Revert "Move dscv and ca_certs to config section service_clients" 2016-08-19 14:20:40 +00:00
test_decorators.py Remove deprecated skip decorators 2017-09-21 17:17:07 +08:00
test_hacking.py Move test decorators to common 2017-08-23 17:09:33 +00:00
test_imports.py Add unit tests to check for CONF getattr during import 2017-10-26 18:08:51 -04:00
test_list_tests.py Switch to use stestr for unit tests directly 2017-09-14 16:00:31 -06:00
test_microversions.py Unsupported 'message' Exception attribute in PY3 2017-07-31 07:30:28 +00:00
test_tempest_plugin.py Add a validation resources fixture 2017-09-12 12:37:24 -06:00
test_test.py Add unit tests for not overriding setUpClass 2017-09-14 13:00:31 -06:00
utils.py Unit tests: mock some time.sleep and time.time 2016-03-03 14:33:45 +01:00

README.rst

Tempest Field Guide to Unit tests

What are these tests?

Unit tests are the self checks for Tempest. They provide functional verification and regression checking for the internal components of Tempest. They should be used to just verify that the individual pieces of Tempest are working as expected. They should not require an external service to be running and should be able to run solely from the Tempest tree.

Why are these tests in Tempest?

These tests exist to make sure that the mechanisms that we use inside of Tempest are valid and remain functional. They are only here for self validation of Tempest.

Scope of these tests

Unit tests should not require an external service to be running or any extra configuration to run. Any state that is required for a test should either be mocked out or created in a temporary test directory. (see test_wrappers.py for an example of using a temporary test directory)