Dealing with dicts in doctest
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Thu Jul 5 21:43:26 EDT 2018
On Fri, 06 Jul 2018 09:31:50 +1000, Cameron Simpson wrote:
> On 05Jul2018 17:57, Steven D'Aprano
> <steve+comp.lang.python at pearwood.info> wrote:
>>I have a function which returns a dict, and I want to use doctest to
>>ensure the documentation is correct. So I write a bunch of doctests:
>>
>>def func(arg):
>> """blah blah blah
>>
>> >>> func(1)
>> {'a': 1, 'b': 2, 'c': 3}
>> """
>>
>>which is correct, *except* that dict keys have arbitrary order in the
>>versions of Python I'm using.
>>
>>I have three ways of dealing with this. Which do you prefer?
>
> Option 4:
>
> >>> func(1) == {'a': 1, 'b': 2, 'c': 3}
> True
Alas, in reality func takes anything up to six arguments, at least one of
which will be a moderately long sequence requiring two lines:
>>> func([('a', 1), ('bb', 2), ('ccc', 4), ('dddd', 8)],
... ('eee', 16), ('ff', 32), ('g', 64)], ...
and the output is similarly long. So making it a one-liner isn't
generally practical.
--
Steven D'Aprano
"Ever since I learned about confirmation bias, I've been seeing
it everywhere." -- Jon Ronson
More information about the Python-list
mailing list