Skip to content

Commit 396e335

Browse files
committed
Fix multidict.__iter__
1 parent 3ac8651 commit 396e335

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ CHANGES
77
- aiohttp.web.HTTPException and descendants now files response body
88
with string like `400: NotFound`
99

10+
- Fix multidict __iter__, the method should iterate over keys, not (key, value) pairs.
11+
1012
0.10.0 (11-13-2014)
1113
-------------------
1214

aiohttp/multidict.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def __getitem__(self, key):
8686
raise KeyError(key)
8787

8888
def __iter__(self):
89-
return iter(self._items)
89+
return iter(self.keys())
9090

9191
def __len__(self):
9292
return len(self._items)

tests/test_multidict.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ def test_copy(self):
7676
self.assertEqual(d1, d2)
7777
self.assertIsNot(d1, d2)
7878

79+
def test__iter__(self):
80+
d = self.make_dict([('key', 'one'), ('key2', 'two'), ('key', 3)])
81+
self.assertEqual(['key', 'key2'], list(d))
82+
7983
def test_keys__contains(self):
8084
d = self.make_dict([('key', 'one'), ('key2', 'two'), ('key', 3)])
8185
self.assertEqual(list(d.keys()), ['key', 'key2'])

0 commit comments

Comments
 (0)