diff --git a/src/sphinxcontrib/programoutput/__init__.py b/src/sphinxcontrib/programoutput/__init__.py index 7eb1c5d..824c045 100644 --- a/src/sphinxcontrib/programoutput/__init__.py +++ b/src/sphinxcontrib/programoutput/__init__.py @@ -218,6 +218,11 @@ def run_programs(app, doctree): error_message = 'Command {0} failed: {1}'.format(command, error) error_node = doctree.reporter.error(error_message, base_node=node) node.replace_self(error_node) + # Sphinx 1.8.0b1 started dropping all system_message nodes with a + # level less than 5 by default (or 2 if `keep_warnings` is set to true). + # This appears to be undocumented. Reporting failures is an important + # part of what this extension does, so we raise the default level. + error_node['level'] = 6 else: if returncode != node['returncode']: app.warn('Unexpected return code {0} from command {1}'.format( diff --git a/src/sphinxcontrib/programoutput/tests/__init__.py b/src/sphinxcontrib/programoutput/tests/__init__.py index 7547962..1e19120 100644 --- a/src/sphinxcontrib/programoutput/tests/__init__.py +++ b/src/sphinxcontrib/programoutput/tests/__init__.py @@ -3,7 +3,7 @@ import os.path import shutil import tempfile -from docutils.parsers.rst import directives +from docutils.parsers.rst import directives, roles from sphinx.application import Sphinx from functools import update_wrapper @@ -60,9 +60,12 @@ class AppMixin(object): # sphinxcontrib.programoutput: directive u'program-output' is # already registered, it will be overridden". self.directives = directives._directives.copy() + # Likewise for 'eq' + self.roles = roles._roles.copy() def tearDown(self): directives._directives = self.directives + roles._roles = self.roles @Lazy def tmpdir(self):