On 17/01/2014 11:41, Steven D'Aprano wrote:
def func(a):
     """
     >>> print(func(u'aaa'))
     aaa
     """
     return a
I think this approach seems to work if I turn the docstring into unicode

def func(a):
        u"""
        >>> print(func(u'aaa\u020b'))
        aaa\u020b
        """
        return a
def _doctest():
        import doctest
        doctest.testmod()

if __name__ == "__main__":
        _doctest()

If I leave the u off the docstring it goes wrong in python 2.7. I also tried to put an encoding onto the file and use the actual utf8 characters ie

# -*- coding: utf-8 -*-
def func(a):
    """
    >>> print(func(u'aaa\u020b'))
    aaaȋ
    """
    return a
def _doctest():
    import doctest
    doctest.testmod()

and that works in python3, but fails in python 2 with this
(py27) C:\code\hg-repos>python tdt1.py
C:\python\Lib\doctest.py:1531: UnicodeWarning: Unicode equal comparison failed 
to convert both arguments to Unicode - in
terpreting them as being unequal
  if got == want:
C:\python\Lib\doctest.py:1551: UnicodeWarning: Unicode equal comparison failed 
to convert both arguments to Unicode - in
terpreting them as being unequal
  if got == want:
**********************************************************************
File "tdt1.py", line 4, in __main__.func
Failed example:
    print(func(u'aaa\u020b'))
Expected:
    aaaȋ
Got:
    aaaȋ
**********************************************************************
1 items had failures:
   1 of   1 in __main__.func
***Test Failed*** 1 failures.


--
Robin Becker

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to