diff options
author | Raymond Hettinger <python@rcn.com> | 2016-08-30 19:35:50 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2016-08-30 19:35:50 (GMT) |
commit | 43ca4528873b8d0bc8c9e63b3871f4fe4286259c (patch) | |
tree | 1b2f178f1b92934b39ac82a7279c4634a9d87c83 /Lib/test/test_csv.py | |
parent | 15f44ab043b37c064d6891c7864205fed9fb0dd1 (diff) | |
download | cpython-43ca4528873b8d0bc8c9e63b3871f4fe4286259c.zip cpython-43ca4528873b8d0bc8c9e63b3871f4fe4286259c.tar.gz cpython-43ca4528873b8d0bc8c9e63b3871f4fe4286259c.tar.bz2 |
Issue #27842: The csv.DictReader now returns rows of type OrderedDict.
Diffstat (limited to 'Lib/test/test_csv.py')
-rw-r--r-- | Lib/test/test_csv.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index e97c9f3..9df4080 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -10,6 +10,7 @@ import csv import gc import pickle from test import support +from itertools import permutations class Test_Csv(unittest.TestCase): """ @@ -1092,6 +1093,21 @@ class TestUnicode(unittest.TestCase): fileobj.seek(0) self.assertEqual(fileobj.read(), expected) +class KeyOrderingTest(unittest.TestCase): + + def test_ordering_for_the_dict_reader_and_writer(self): + resultset = set() + for keys in permutations("abcde"): + with TemporaryFile('w+', newline='', encoding="utf-8") as fileobject: + dw = csv.DictWriter(fileobject, keys) + dw.writeheader() + fileobject.seek(0) + dr = csv.DictReader(fileobject) + kt = tuple(dr.fieldnames) + self.assertEqual(keys, kt) + resultset.add(kt) + # Final sanity check: were all permutations unique? + self.assertEqual(len(resultset), 120, "Key ordering: some key permutations not collected (expected 120)") class MiscTestCase(unittest.TestCase): def test__all__(self): |