fix debug2 UnicodeEncodeError issue with multibyte names node

This commit is contained in:
Takayuki Shimizukawa
2013-01-21 08:09:43 +09:00
parent fbd63617cf
commit 60f6fc4805
2 changed files with 9 additions and 1 deletions

View File

@@ -343,7 +343,8 @@ class Sphinx(object):
event.pop(listener_id, None)
def emit(self, event, *args):
self.debug2('[app] emitting event: %r%s', event, str(args)[:100])
args_repr = repr(map(unicode, args))[:100]
self.debug2('[app] emitting event: %s%s', event, args_repr)
results = []
if event in self._listeners:
for _, callback in self._listeners[event].iteritems():

View File

@@ -11,6 +11,7 @@
from StringIO import StringIO
from docutils import nodes
from sphinx.application import ExtensionError
from sphinx.domains import Domain
@@ -41,6 +42,12 @@ def test_events(app):
"Callback called when disconnected"
@with_app()
def test_emit_with_multibyte_name_node(app):
node = nodes.section(names=[u'\u65e5\u672c\u8a9e'])
app.emit('my_event', node)
def test_output():
status, warnings = StringIO(), StringIO()
app = TestApp(status=status, warning=warnings)