Add more iterations to BuildDoc coverage.
Using testscenarios, construct more combinations of test options for the autodoc_index_module option. Change-Id: I96b2816be2c652478b37c03cb5755a83dfeb0894 Reviewed-on: https://review.openstack.org/25825 Reviewed-by: James E. Blair <corvus@inaugust.com> Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Approved: Monty Taylor <mordred@inaugust.com> Tested-by: Jenkins
This commit is contained in:
parent
5b8b7f1d83
commit
8dff555d19
@ -31,6 +31,7 @@ from distutils import log
|
||||
from setuptools.command import sdist
|
||||
|
||||
log.set_verbosity(log.INFO)
|
||||
TRUE_VALUES = ['true', '1', 'yes']
|
||||
|
||||
|
||||
def _parse_mailmap(mailmap_info):
|
||||
@ -315,6 +316,8 @@ try:
|
||||
def run(self):
|
||||
option_dict = self.distribution.get_option_dict('pbr')
|
||||
if ('autodoc_index_modules' in option_dict and
|
||||
option_dict.get(
|
||||
'autodoc_index_modules').lower() in TRUE_VALUES and
|
||||
not os.getenv('SPHINX_DEBUG')):
|
||||
self.generate_autoindex()
|
||||
|
||||
|
@ -1,14 +1,55 @@
|
||||
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2010-2011 OpenStack Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
"""Common utilities used in testing"""
|
||||
|
||||
import os
|
||||
|
||||
import fixtures
|
||||
import testresources
|
||||
import testtools
|
||||
|
||||
from pbr import packaging
|
||||
from pbr.tests import moxstubout
|
||||
|
||||
|
||||
class BaseTestCase(testtools.TestCase, testresources.ResourcedTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(BaseTestCase, self).setUp()
|
||||
test_timeout = os.environ.get('OS_TEST_TIMEOUT', 30)
|
||||
try:
|
||||
test_timeout = int(test_timeout)
|
||||
except ValueError:
|
||||
# If timeout value is invalid, fail hard.
|
||||
print("OS_TEST_TIMEOUT set to invalid value"
|
||||
" defaulting to no timeout")
|
||||
test_timeout = 0
|
||||
if test_timeout > 0:
|
||||
self.useFixture(fixtures.Timeout(test_timeout, gentle=True))
|
||||
|
||||
if os.environ.get('OS_STDOUT_CAPTURE') in packaging.TRUE_VALUES:
|
||||
stdout = self.useFixture(fixtures.StringStream('stdout')).stream
|
||||
self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
|
||||
if os.environ.get('OS_STDERR_CAPTURE') in packaging.TRUE_VALUES:
|
||||
stderr = self.useFixture(fixtures.StringStream('stderr')).stream
|
||||
self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
|
||||
self.log_fixture = self.useFixture(
|
||||
fixtures.FakeLogger('pbr'))
|
||||
|
||||
self.useFixture(fixtures.NestedTempfile())
|
||||
self.useFixture(fixtures.FakeLogger())
|
||||
self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs
|
||||
|
@ -22,9 +22,10 @@ import sys
|
||||
import tempfile
|
||||
|
||||
import fixtures
|
||||
import testscenarios
|
||||
|
||||
from pbr import packaging
|
||||
from pbr.tests import utils
|
||||
from pbr import tests
|
||||
|
||||
|
||||
class DiveDir(fixtures.Fixture):
|
||||
@ -43,7 +44,7 @@ class DiveDir(fixtures.Fixture):
|
||||
self.addCleanup(os.chdir, self.old_path)
|
||||
|
||||
|
||||
class EmailTestCase(utils.BaseTestCase):
|
||||
class EmailTestCase(tests.BaseTestCase):
|
||||
|
||||
def test_str_dict_replace(self):
|
||||
string = 'Johnnie T. Hozer'
|
||||
@ -52,7 +53,7 @@ class EmailTestCase(utils.BaseTestCase):
|
||||
packaging.canonicalize_emails(string, mapping))
|
||||
|
||||
|
||||
class MailmapTestCase(utils.BaseTestCase):
|
||||
class MailmapTestCase(tests.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(MailmapTestCase, self).setUp()
|
||||
@ -79,7 +80,7 @@ class MailmapTestCase(utils.BaseTestCase):
|
||||
packaging.read_git_mailmap(self.git_dir))
|
||||
|
||||
|
||||
class GitLogsTest(utils.BaseTestCase):
|
||||
class GitLogsTest(tests.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(GitLogsTest, self).setUp()
|
||||
@ -152,32 +153,49 @@ class GitLogsTest(utils.BaseTestCase):
|
||||
self.assertTrue(co_author in authors)
|
||||
|
||||
|
||||
class BuildSphinxTest(utils.BaseTestCase):
|
||||
class BuildSphinxTest(tests.BaseTestCase):
|
||||
|
||||
def test_build_sphinx(self):
|
||||
scenarios = [
|
||||
('true_autodoc_caps',
|
||||
dict(has_opt=True, autodoc='True', has_autodoc=True)),
|
||||
('true_autodoc_lower',
|
||||
dict(has_opt=True, autodoc='true', has_autodoc=True)),
|
||||
('false_autodoc',
|
||||
dict(has_opt=True, autodoc='False', has_autodoc=False)),
|
||||
('no_autodoc',
|
||||
dict(has_opt=False, autodoc='False', has_autodoc=False)),
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
super(BuildSphinxTest, self).setUp()
|
||||
|
||||
self.useFixture(fixtures.MonkeyPatch(
|
||||
"sphinx.setup_command.BuildDoc.run", lambda self: None))
|
||||
from distutils import dist
|
||||
distr = dist.Distribution()
|
||||
distr.packages = ("fake_package",)
|
||||
distr.command_options["build_sphinx"] = {"source_dir": ["a", "."]}
|
||||
distr.command_options["pbr"] = {"autodoc_index_modules": "True"}
|
||||
self.distr = dist.Distribution()
|
||||
self.distr.packages = ("fake_package",)
|
||||
self.distr.command_options["build_sphinx"] = {
|
||||
"source_dir": ["a", "."]}
|
||||
pkg_fixture = fixtures.PythonPackage(
|
||||
"fake_package", [("fake_module.py", "")])
|
||||
self.useFixture(pkg_fixture)
|
||||
self.useFixture(DiveDir(pkg_fixture.base))
|
||||
|
||||
build_doc = packaging.LocalBuildDoc(distr)
|
||||
def test_build_doc(self):
|
||||
if self.has_opt:
|
||||
self.distr.command_options["pbr"] = {
|
||||
"autodoc_index_modules": self.autodoc}
|
||||
build_doc = packaging.LocalBuildDoc(self.distr)
|
||||
build_doc.run()
|
||||
|
||||
self.assertTrue(
|
||||
os.path.exists("api/autoindex.rst"))
|
||||
os.path.exists("api/autoindex.rst") == self.has_autodoc)
|
||||
self.assertTrue(
|
||||
os.path.exists("api/fake_package.fake_module.rst"))
|
||||
os.path.exists(
|
||||
"api/fake_package.fake_module.rst") == self.has_autodoc)
|
||||
|
||||
|
||||
class ParseRequirementsTest(utils.BaseTestCase):
|
||||
class ParseRequirementsTest(tests.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(ParseRequirementsTest, self).setUp()
|
||||
@ -218,7 +236,7 @@ class ParseRequirementsTest(utils.BaseTestCase):
|
||||
self.assertEqual([], actual)
|
||||
|
||||
|
||||
class ParseDependencyLinksTest(utils.BaseTestCase):
|
||||
class ParseDependencyLinksTest(tests.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(ParseDependencyLinksTest, self).setUp()
|
||||
@ -238,3 +256,7 @@ class ParseDependencyLinksTest(utils.BaseTestCase):
|
||||
self.assertEqual(
|
||||
["git://foo.com/zipball#egg=bar"],
|
||||
packaging.parse_dependency_links([self.tmp_file]))
|
||||
|
||||
|
||||
def load_tests(loader, in_tests, pattern):
|
||||
return testscenarios.load_tests_apply_scenarios(loader, in_tests, pattern)
|
||||
|
@ -20,11 +20,11 @@ import sys
|
||||
|
||||
from oslo.config import cfg
|
||||
|
||||
from pbr.tests import utils
|
||||
from pbr import tests
|
||||
from pbr import version
|
||||
|
||||
|
||||
class DeferredVersionTestCase(utils.BaseTestCase):
|
||||
class DeferredVersionTestCase(tests.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(DeferredVersionTestCase, self).setUp()
|
||||
|
@ -1,45 +0,0 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2010-2011 OpenStack Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
"""Common utilities used in testing"""
|
||||
|
||||
import os
|
||||
|
||||
import fixtures
|
||||
import testtools
|
||||
|
||||
from pbr.tests import moxstubout
|
||||
|
||||
_TRUE = ('True', '1')
|
||||
|
||||
|
||||
class BaseTestCase(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(BaseTestCase, self).setUp()
|
||||
if os.environ.get('OS_STDOUT_CAPTURE') in _TRUE:
|
||||
stdout = self.useFixture(fixtures.StringStream('stdout')).stream
|
||||
self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout))
|
||||
if os.environ.get('OS_STDERR_CAPTURE') in _TRUE:
|
||||
stderr = self.useFixture(fixtures.StringStream('stderr')).stream
|
||||
self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr))
|
||||
self.log_fixture = self.useFixture(
|
||||
fixtures.FakeLogger('pbr'))
|
||||
|
||||
self.useFixture(fixtures.NestedTempfile())
|
||||
self.useFixture(fixtures.FakeLogger())
|
||||
self.useFixture(fixtures.Timeout(30, True))
|
||||
self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs
|
@ -7,4 +7,6 @@ oslo.config
|
||||
python-subunit
|
||||
sphinx>=1.1.2
|
||||
testrepository>=0.0.13
|
||||
testresources
|
||||
testscenarios
|
||||
testtools>=0.9.27
|
||||
|
Loading…
x
Reference in New Issue
Block a user