diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-11-29 06:24:44 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-11-29 06:24:44 +0000 |
commit | de8d542f03da6e301052e62391743270655b2311 (patch) | |
tree | 8bffffe4664772833017b7b3b40eadd1bdb987b9 | |
parent | 29d3b6ba2dd92e060e35d5f28d3bc55b2376cc2f (diff) | |
parent | 62d9684b3f71732e2fcdb6509dd02df89f13136f (diff) | |
download | pbr-de8d542f03da6e301052e62391743270655b2311.tar.gz |
Merge "Make sphinx builders configurable in LocalBuildDoc"
-rw-r--r-- | pbr/packaging.py | 7 | ||||
-rw-r--r-- | pbr/tests/test_setup.py | 33 |
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): |