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

Lennart Regebro regebro at gmail.com
Thu Dec 31 03:30:34 EST 2009


On Thu, Dec 31, 2009 at 02:21, Martin Aspeli <optilude+lists at gmail.com> wrote:
> 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?

That could be it. It seems silly to have a whole module just for that,
but we can change the deprecation to just deprecate the BBB imports.
-- 
Lennart Regebro: Python, Zope, Plone, Grok
http://regebro.wordpress.com/
+33 661 58 14 64


More information about the Zope-Dev mailing list