Skip to content

Commit 84d1a8c

Browse files
committed
Add tests for showing multidict failures
1 parent 0690869 commit 84d1a8c

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

aiohttp/multidict.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ def _extend(self, args, kwargs, name, method):
187187
else:
188188
items = args[0]
189189

190-
for item in items:
191-
method(*item)
190+
for key, value in items:
191+
method(key, value)
192192

193-
for item in kwargs.items():
194-
method(*item)
193+
for key, value in kwargs.items():
194+
method(key, value)
195195

196196
def clear(self):
197197
"""Remove all items from MultiDict"""

tests/test_multidict.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ class _Root:
2525

2626
proxy_cls = None
2727

28+
upstr_cls = None
29+
2830
def test_exposed_names(self):
2931
name = self.cls.__name__
3032
while name.startswith('_'):
@@ -282,6 +284,16 @@ def test_get(self):
282284
self.assertEqual(1, d['a'])
283285

284286

287+
class _NonProxyCIMultiDict(_CIMultiDictTests):
288+
289+
def test_extend_with_upstr(self):
290+
us = self.upstr_cls('a')
291+
d = self.make_dict()
292+
293+
d.extend((us, 'val'))
294+
self.assertEqual([('A', 'val')], list(d.items()))
295+
296+
285297
class _TestProxy(_MultiDictTests):
286298

287299
def make_dict(self, *args, **kwargs):
@@ -652,9 +664,11 @@ class PyMutableMultiDictTests(_BaseMutableMultiDictTests, unittest.TestCase):
652664
cls = _MultiDict
653665

654666

655-
class PyCIMutableMultiDictTests(_CIMutableMultiDictTests, unittest.TestCase):
667+
class PyCIMutableMultiDictTests(_CIMutableMultiDictTests, _NonProxyCIMultiDict,
668+
unittest.TestCase):
656669

657670
cls = _CIMultiDict
671+
upstr_cls = _upstr
658672

659673

660674
class TestMultiDictProxy(_TestProxy, unittest.TestCase):
@@ -663,7 +677,7 @@ class TestMultiDictProxy(_TestProxy, unittest.TestCase):
663677
proxy_cls = MultiDictProxy
664678

665679

666-
class TestCIMultiDictProxt(_TestCIProxy, unittest.TestCase):
680+
class TestCIMultiDictProxy(_TestCIProxy, unittest.TestCase):
667681

668682
cls = CIMultiDict
669683
proxy_cls = CIMultiDictProxy
@@ -674,9 +688,11 @@ class MutableMultiDictTests(_BaseMutableMultiDictTests, unittest.TestCase):
674688
cls = MultiDict
675689

676690

677-
class CIMutableMultiDictTests(_CIMutableMultiDictTests, unittest.TestCase):
691+
class CIMutableMultiDictTests(_CIMutableMultiDictTests, _NonProxyCIMultiDict,
692+
unittest.TestCase):
678693

679694
cls = CIMultiDict
695+
upstr_cls = upstr
680696

681697

682698
class _UpStrMixin:

0 commit comments

Comments
 (0)