From 7d428788e156200df2f8e6421cad9fce083fd96b Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Wed, 13 Oct 2004 14:15:32 +0000 Subject: Fixed a small bug. doctest didn't handle unicode docstrings containing non-ascii characters. --- Lib/doctest.py | 4 +++- Lib/test/test_doctest2.py | 18 ++++++++++++++++-- Lib/test/test_doctest2.txt | 7 +++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Lib/doctest.py b/Lib/doctest.py index 26a8914..a8162f3 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -962,7 +962,9 @@ class DocTestFinder: if obj.__doc__ is None: docstring = '' else: - docstring = str(obj.__doc__) + docstring = obj.__doc__ + if not isinstance(docstring, basestring): + docstring = str(docstring) except (TypeError, AttributeError): docstring = '' diff --git a/Lib/test/test_doctest2.py b/Lib/test/test_doctest2.py index 3593d41..5b7f36f 100644 --- a/Lib/test/test_doctest2.py +++ b/Lib/test/test_doctest2.py @@ -1,17 +1,31 @@ -"""A module to test whether doctest recognizes some 2.2 features, +# -*- coding: utf-8 -*- +u"""A module to test whether doctest recognizes some 2.2 features, like static and class methods. >>> print 'yup' # 1 yup + +We include some (random) encoded (utf-8) text in the text surrounding +the example. It should be ignored: + +ЉЊЈЁЂ + """ from test import test_support class C(object): - """Class C. + u"""Class C. >>> print C() # 2 42 + + + We include some (random) encoded (utf-8) text in the text surrounding + the example. It should be ignored: + + ЉЊЈЁЂ + """ def __init__(self): diff --git a/Lib/test/test_doctest2.txt b/Lib/test/test_doctest2.txt index 0d7d1d5..2e14856 100644 --- a/Lib/test/test_doctest2.txt +++ b/Lib/test/test_doctest2.txt @@ -5,3 +5,10 @@ In this example, we'll rely on some silly setup: >>> import test.test_doctest >>> test.test_doctest.sillySetup True + +This test also has some (random) encoded (utf-8) unicode text: + + ЉЊЈЁЂ + +This doesn't cause a problem in the tect surrounding the examples, but +we include it here (in this test text file) to make sure. :) -- cgit v0.12