From 60f6fc48050520cb8582b9cf5d812729dd80d970 Mon Sep 17 00:00:00 2001 From: Takayuki Shimizukawa Date: Mon, 21 Jan 2013 08:09:43 +0900 Subject: [PATCH] fix debug2 UnicodeEncodeError issue with multibyte names node --- sphinx/application.py | 3 ++- tests/test_application.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sphinx/application.py b/sphinx/application.py index 02f0ff82e..5ab556732 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -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(): diff --git a/tests/test_application.py b/tests/test_application.py index 6495dc2cd..87ec42f01 100644 --- a/tests/test_application.py +++ b/tests/test_application.py @@ -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)