summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-11-29 06:24:44 +0000
committerGerrit Code Review <review@openstack.org>2013-11-29 06:24:44 +0000
commitde8d542f03da6e301052e62391743270655b2311 (patch)
tree8bffffe4664772833017b7b3b40eadd1bdb987b9
parent29d3b6ba2dd92e060e35d5f28d3bc55b2376cc2f (diff)
parent62d9684b3f71732e2fcdb6509dd02df89f13136f (diff)
downloadpbr-de8d542f03da6e301052e62391743270655b2311.tar.gz
Merge "Make sphinx builders configurable in LocalBuildDoc"
-rw-r--r--pbr/packaging.py7
-rw-r--r--pbr/tests/test_setup.py33
2 files changed, 40 insertions, 0 deletions
diff --git a/pbr/packaging.py b/pbr/packaging.py
index c6d6847..f8ad5ef 100644
--- a/pbr/packaging.py
+++ b/pbr/packaging.py
@@ -729,6 +729,13 @@ try:
else:
setup_command.BuildDoc.run(self)
+ def finalize_options(self):
+ # Not a new style class, super keyword does not work.
+ setup_command.BuildDoc.finalize_options(self)
+ # Allow builders to be configurable - as a comma separated list.
+ if not isinstance(self.builders, list) and self.builders:
+ self.builders = self.builders.split(',')
+
class LocalBuildLatex(LocalBuildDoc):
builders = ['latex']
command_name = 'build_sphinx_latex'
diff --git a/pbr/tests/test_setup.py b/pbr/tests/test_setup.py
index e2bda3f..6a9add3 100644
--- a/pbr/tests/test_setup.py
+++ b/pbr/tests/test_setup.py
@@ -253,6 +253,39 @@ class BuildSphinxTest(base.BaseTestCase):
os.path.exists(
"api/fake_package.fake_module.rst") == self.has_autodoc)
+ def test_builders_config(self):
+ if self.has_opt:
+ self.distr.command_options["pbr"] = {
+ "autodoc_index_modules": ('setup.cfg', self.autodoc)}
+
+ build_doc = packaging.LocalBuildDoc(self.distr)
+ build_doc.finalize_options()
+
+ self.assertEqual(2, len(build_doc.builders))
+ self.assertIn('html', build_doc.builders)
+ self.assertIn('man', build_doc.builders)
+
+ build_doc = packaging.LocalBuildDoc(self.distr)
+ build_doc.builders = ''
+ build_doc.finalize_options()
+
+ self.assertEqual('', build_doc.builders)
+
+ build_doc = packaging.LocalBuildDoc(self.distr)
+ build_doc.builders = 'man'
+ build_doc.finalize_options()
+
+ self.assertEqual(1, len(build_doc.builders))
+ self.assertIn('man', build_doc.builders)
+
+ build_doc = packaging.LocalBuildDoc(self.distr)
+ build_doc.builders = 'html,man,doctest'
+ build_doc.finalize_options()
+
+ self.assertIn('html', build_doc.builders)
+ self.assertIn('man', build_doc.builders)
+ self.assertIn('doctest', build_doc.builders)
+
class ParseRequirementsTest(base.BaseTestCase):