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>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4