If you have a directory containing a sphinx project, test that it builds with something like:
class TestMyProject(SourcesBuilder):
page_source_template = 'path/to/sphinx_dir'
def test_basic_build(self):
# Get doctree for page "a_page.rst"
doctree = self.get_doctree('a_page')
# Assert stuff about doctree version of page
html = self.get_built_file('a_page.html')
# Assert stuff about html version of page
You can try adding other page content by using the rst_sources
dictionary:
class TestChangedProject(SourcesBuilder):
page_source_template = 'path/to/sphinx_dir'
rst_sources = {'a_page': """Replacement text for page""",
'b_page': """An entirely new page"""}
def test_basic_build(self):
a_doctree = self.get_doctree('a_page')
b_doctree = self.get_doctree('b_page')
# Your tests for the new page content here
Set the text of the conf.py
file with the conf_source
attribute:
class TestConfeddProject(SourcesBuilder):
page_source_template = 'path/to/sphinx_dir'
rst_sources = {'a_page': """Replacement text for page""",
'b_page': """An entirely new page"""}
conf_source = """ # This overwrites existing conf.py """
def test_basic_build(self):
a_doctree = self.get_doctree('a_page')
b_doctree = self.get_doctree('b_page')
# Your tests for the new page content here
You don't need to set page_source_template
; if you don't, you start with a
fresh project, where the only pages are the ones you specify in
rst_sources
.
class TestFreshProject(SourcesBuilder):
rst_sources = {'a_page': """A new page""",
'b_page': """Another new page"""}
conf_source = """ # Stuff for the conf.py file """
def test_basic_build(self):
a_doctree = self.get_doctree('a_page')
b_doctree = self.get_doctree('b_page')
# Your tests for the new page content here
See the tests for examples of using Sphinxtesters for testing builds of Sphinx projects.
pip install sphinxtesters
See https://github.com/matthew-brett/sphinxtesters
Released under the BSD two-clause license - see the file LICENSE
in the
source distribution.
travis-ci kindly tests the code automatically under Python versions 2.7, and 3.3 through 3.6.
The latest released version is at https://pypi.python.org/pypi/sphinxtesters
Install
sphinxtesters
Install the pytest testing framework:
pip install pytest
Run the tests with:
pytest sphinxtesters
Please put up issues on the sphinxtesters issue tracker.