Fix #3902: Emit error if `latex_documents` contains non-unicode string in py2

This commit is contained in:
Takeshi KOMIYA committed 2017-07-02 20:00:21 +09:00
1 parent dc6a8a5457
commit 4791c35edf
2 files changed
+21 -1

No files matched your search

+1
View File
@@ -46,6 +46,7 @@ Bugs fixed
* #3840: make checking ``epub_uid`` strict
* #3851, #3706: Fix about box drawing characters for PDF output
* #3900: autosummary could not find methods
* #3902: Emit error if ``latex_documents`` contains non-unicode string in py2
Testing
--------
+20 -1
View File
@@ -13,6 +13,8 @@ import os
import warnings
from os import path
from six import text_type
from docutils import nodes
from docutils.io import FileOutput
from docutils.utils import new_document
@@ -21,7 +23,7 @@ from docutils.frontend import OptionParser
from sphinx import package_dir, addnodes, highlighting
from sphinx.deprecation import RemovedInSphinx17Warning
from sphinx.config import string_classes, ENUM
from sphinx.errors import SphinxError
from sphinx.errors import SphinxError, ConfigError
from sphinx.locale import _
from sphinx.builders import Builder
from sphinx.environment import NoUri
@@ -278,6 +280,23 @@ def validate_config_values(app):
"LaTeX markup since Sphinx 1.4.5 uses only prefixed macro names.",
RemovedInSphinx17Warning)
for document in app.config.latex_documents:
try:
text_type(document[2])
except UnicodeDecodeError:
raise ConfigError(
'Invalid latex_documents.title found (might contain non-ASCII chars. '
'Please use u"..." notation instead): %r' % (document,)
)
try:
text_type(document[3])
except UnicodeDecodeError:
raise ConfigError(
'Invalid latex_documents.author found (might contain non-ASCII chars. '
'Please use u"..." notation instead): %r' % (document,)
)
def default_latex_engine(config):
# type: (Config) -> unicode