[Zope-dev] zope.testing.doctestunit pprint and deprecation warnings

Martin Aspeli optilude+lists at gmail.com
Wed Dec 30 20:21:12 EST 2009


Hanno Schlichting wrote:
> On Wed, Dec 30, 2009 at 6:38 PM, Martijn Faassen<faassen at startifact.com>  wrote:
>> zope.testing.doctestunit emits a deprecation warning. It also defines a
>> function pprint. How does one use pprint without getting a deprecation
>> warning? It seems impossible now, and an equivalent pprint doesn't
>> appear to be in the standard library doctest..
>
> When I recently converted some tests, I replaced that pprint function
> with the one from the standard library:
>
> from pprint import pprint
>
> There weren't any differences in the output, as far as I could tell.

Not sure if this is related, but one thing I found which bit me recently 
is that prior to Python 2.5, pprint did not sort dict keys in the 
output. That means that a test like this:

  >>> pprint(foo)
  {'omega': 1, 'alpha': 2}

will pass on 2.4 and fail on 2.5/2.6; to fix it for 2.5/2.6 you do:

  >>> pprint(foo)
  {'alpha': 2, 'omega': 1}

but now it fails on 2.4. The only way I could find it make it work 
reliably was to not rely on dicts at all, but do:

  >>> pprint(sorted(foo.items())
  [('alpha', 2), ('omega', 1)]

Which works the same on both. I don't know if the zope.doctest pprint 
function was meant to fix this, but maybe it did?

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book



More information about the Zope-Dev mailing list