[TIP] dicts in doctests

Pete pfein at pobox.com
Wed Sep 17 17:43:43 PDT 2008


Is there a preferred way of testing dicts in doctests?  The random key  
ordering can be problematic (IIRC, this bit the django port to Jython).

 >>> dict([('x', 1), ('y', 2)])
{'x': 1, 'y': 2}

Python doesn't guarantee what order the dict is printed in.  It'd be  
possible to work around like so:

 >>> dict([('x', 1), ('y', 2)]) == {'x': 1, 'y': 2}

or even

 >>> d = dict([('x', 1), ('y', 2)])
 >>> sorted(d.items())
[('x': 1), ('y': 2)]

But both of these approaches kinda defeat the tests as documentation  

Any thoughts?  Just go with the first case & hope for the best?  The  
ordering's relatively stable across CPythons (versions & platforms)  


More information about the testing-in-python mailing list