From cde6c361f921f86543301558a794ce77922b7fb8 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 8 Sep 2014 11:52:31 -0700 Subject: [PATCH] Update testing interface to reflect reality Several things have changed since last the Project Testing Interface was approved. It seems like a good idea to formally approve the current state of the world before suggesting new changes. Change-Id: Ic933a9dea945e5360d31773baef191fbd5bf436e --- reference/project-testing-interface.rst | 41 ++++++++++++------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/reference/project-testing-interface.rst b/reference/project-testing-interface.rst index 282933f0c..6b9b800b5 100644 --- a/reference/project-testing-interface.rst +++ b/reference/project-testing-interface.rst @@ -44,41 +44,40 @@ Projects that are translated should also support: Requirements Listing -------------------- -Each project should list its operations dependencies in tools/pip-requires -and additional dependencies required for testing in tools/test-requires. +Each project should list its operations dependencies in requirements.txt +and additional dependencies required for testing in test-requirements.txt. +If there are requirements that are specific to python3 or pypy support, +those may optionally be listed in requirements-py3.txt or +requirements-pypy.txt. Virtual Environment Management ------------------------------ -To support sensible testing across multiple python versions, we've use tox -config files in the projects with the hope that eventually we can remove having -install_venv.py copied in to each of the projects. +To support sensible testing across multiple python versions, we use tox +config files in the projects. unittest running ---------------- -Nova uses a specialized test runner, which is a subclass of nose. Most of the -functionality of this has been extracted in to openstack.nose_plugin. There are -still a few test failures currently when running nova unittests directly under -nose, but once those are solved, the projects should really all have a config -for openstack.nose_plugin and then support running nose directly with no -special setup ... this will help in writing code to exploit the features of -nose. +OpenStack uses testrepository as its test runner, which supports a number +of things, most importantly to the expanded project is the subunit output +stream collection. This is useful for aggregating and displaying test output. +In support of that, the oslotest library is built on top of testtools, +testscenarios and fixtures. -Helper Scripts --------------- +Project Configuration +--------------------- -The projects up until now have all had a run_tests.sh and a with_venv.sh -script. run_tests.sh should be able to be easily re-written to pass things -along to the above tox commands. with_venv.sh is also easy - the tox venv -environment (tox -evenv) is available to run arbitrary commands in the context -of a tox virtualenv. +All OpenStack projects use `pbr` for consistent operation of setuptools. +To accomplish this, all setup.py files only contain a simple setup function +that setup_requires on an unversioned pbr, and a directive to pass processing +to the pbr library. Actual project configuration is then handled in setup.cfg. Generated Files --------------- -ChangeLog and AUTHORS files should be generated at setup.py sdist time. Code -exists in oslo in the setup module to support that. +ChangeLog and AUTHORS files are generated at setup.py sdist time. This is +handled by pbr. .mailmap files should exist where a developer has more than one email address or identity, and should map to the developer's canonical identity.