Commit 0522fd81 authored by Stéphane Wirtel's avatar Stéphane Wirtel Committed by Julien Palard

bpo-34839: Add a 'before 3.6' in the section 'warnings' of doctest (GH-9736)

parent a5259fb0
......@@ -759,23 +759,27 @@ Warnings
:mod:`doctest` is serious about requiring exact matches in expected output. If
even a single character doesn't match, the test fails. This will probably
surprise you a few times, as you learn exactly what Python does and doesn't
guarantee about output. For example, when printing a dict, Python doesn't
guarantee that the key-value pairs will be printed in any particular order, so a
test like ::
guarantee about output. For example, when printing a set, Python doesn't
guarantee that the element is printed in any particular order, so a test like ::
>>> foo()
{"Hermione": "hippogryph", "Harry": "broomstick"}
{"Hermione", "Harry"}
is vulnerable! One workaround is to do ::
>>> foo() == {"Hermione": "hippogryph", "Harry": "broomstick"}
>>> foo() == {"Hermione", "Harry"}
True
instead. Another is to do ::
>>> d = sorted(foo().items())
>>> d = sorted(foo())
>>> d
[('Harry', 'broomstick'), ('Hermione', 'hippogryph')]
['Harry', 'Hermione']
.. note::
Before Python 3.6, when printing a dict, Python did not guarantee that
the key-value pairs was printed in any particular order.
There are others, but you get the idea.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment