[Python-Dev] doctest, unicode repr, and 2to3 (original) (raw)
Žiga Seilnacht ziga.seilnacht at gmail.com
Sat Mar 6 00:08:14 CET 2010
- Previous message: [Python-Dev] doctest, unicode repr, and 2to3
- Next message: [Python-Dev] [PEP 3148] futures - execute computations asynchronously
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Martin v. Löwis wrote:
Johan Harjano ran into an interesting problem when trying to run the Django test suite under Python 3.1.
Django has doctests of the form >>> a6.headline u'Default headline' Even when converting the doctest with 2to3, the expected output is unmodified. However, in 3.x, the expected output will change (i.e. not produce an u"" prefix anymore). Now, it might be possible to reformulate the test case (e.g. use print() instead of relying on repr), however, this is undesirable as a) the test should continue to test in 2.x that the result object is a unicode string, and b) it makes the test less readable. I would like to find a solution where this gets automatically corrected, e.g. through 2to3, or through changes to doctest, or through changes of str.repr. Any proposal appreciated.
You can use a custom DocTestRunner that replaces sys.displayhook in its run() method and records the changed output. Something like the attached seems to do the trick.
Regards, Ziga -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: convert_doctest.py URL: <http://mail.python.org/pipermail/python-dev/attachments/20100306/381e9d33/attachment.ksh>
- Previous message: [Python-Dev] doctest, unicode repr, and 2to3
- Next message: [Python-Dev] [PEP 3148] futures - execute computations asynchronously
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]