From 3f9f2e1199dbed7ff1c917da2956ed291842ddf3 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Fri, 10 Jul 2015 14:46:15 +0000 Subject: [PATCH] Move fixture dependencies to extras Rather than always installing dependencies for the test tools included in the library, define an extras called "test" and include the dependencies there. Add API documentation for the fixture module, and include notes about installing the extra dependencies in the module documentation and installation instructions. Closes-Bug: #1440350 Depends-On: I78838dcd4da43b3c1d2610ac87a3ec55b9535646 Depends-On: Ibd2410e0153053b5121155474e99752256c7e4b8 Change-Id: I4e45c1bb4f08c9da510939514c5358e1575d3e0a --- doc/source/api/fixture.rst | 8 ++++++++ doc/source/installation.rst | 5 +++++ oslo_versionedobjects/fixture.py | 10 ++++++++++ requirements.txt | 3 --- setup.cfg | 6 ++++++ tox.ini | 4 ++-- 6 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 doc/source/api/fixture.rst diff --git a/doc/source/api/fixture.rst b/doc/source/api/fixture.rst new file mode 100644 index 0000000..0f9bd8a --- /dev/null +++ b/doc/source/api/fixture.rst @@ -0,0 +1,8 @@ +========= + fixture +========= + +.. automodule:: oslo_versionedobjects.fixture + :members: + :undoc-members: + diff --git a/doc/source/installation.rst b/doc/source/installation.rst index b02a051..7f29007 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -5,3 +5,8 @@ At the command line:: $ pip install oslo.versionedobjects + +To use ``oslo_versionedobjects.fixture``, some additional dependencies +are needed. They can be installed using the ``fixtures`` extra:: + + $ pip install 'oslo.versionedobjects[fixtures]' diff --git a/oslo_versionedobjects/fixture.py b/oslo_versionedobjects/fixture.py index ea024d7..1689d0d 100644 --- a/oslo_versionedobjects/fixture.py +++ b/oslo_versionedobjects/fixture.py @@ -9,6 +9,16 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +"""Fixtures for writing tests for code using oslo.versionedobjects + +.. note:: + + This module has several extra dependencies not needed at runtime + for production code, and therefore not installed by default. To + ensure those dependencies are present for your tests, add + ``oslo.versionedobjects[fixtures]`` to your list of test dependencies. + +""" from collections import OrderedDict import hashlib diff --git a/requirements.txt b/requirements.txt index 6be0d2c..c439190 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,4 @@ oslo.utils>=1.6.0 # Apache-2.0 iso8601>=0.1.9 oslo.log>=1.2.0 # Apache-2.0 oslo.i18n>=1.5.0 # Apache-2.0 -mock>=1.1;python_version!='2.6' -mock==1.0.1;python_version=='2.6' -fixtures>=1.3.1 WebOb>=1.2.3 diff --git a/setup.cfg b/setup.cfg index 6664bdf..f847599 100644 --- a/setup.cfg +++ b/setup.cfg @@ -22,6 +22,12 @@ classifier = packages = oslo_versionedobjects +[extras] +fixtures = + mock>=1.1:python_version!='2.6' + mock==1.0.1:python_version=='2.6' + fixtures>=1.3.1 + [pbr] warnerrors = true diff --git a/tox.ini b/tox.ini index 9bc33f5..7cdc7b6 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ envlist = py34,py27,pypy,pep8 install_command = pip install -U {opts} {packages} setenv = VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/requirements.txt +deps = .[fixtures] -r{toxinidir}/test-requirements.txt commands = python setup.py testr --slowest --testr-args='{posargs}' @@ -45,4 +45,4 @@ import_exceptions = oslo_versionedobjects._i18n # this also means that pip-missing-reqs must be installed separately, outside # of the requirements.txt files deps = pip_missing_reqs -commands = pip-missing-reqs -d --ignore-module=oslo_versionedobjects* --ignore-module=pkg_resources --ignore-file=oslo_versionedobjects/test.py --ignore-file=oslo_versionedobjects/tests/* oslo_versionedobjects \ No newline at end of file +commands = pip-missing-reqs -d --ignore-module=oslo_versionedobjects* --ignore-module=pkg_resources --ignore-file=oslo_versionedobjects/test.py --ignore-file=oslo_versionedobjects/tests/* oslo_versionedobjects