Kaydet (Commit) 59d127e4 authored tarafından Anton Baklanov's avatar Anton Baklanov Kaydeden (comit) Claude Paroz

Fixed #20276 -- Implemented __bool__ for MergeDict

MergeDict evaluates now to False if all contained dicts are empty.
Thanks til for the report and the initial patch.
üst bfe25de4
...@@ -14,6 +14,12 @@ class MergeDict(object): ...@@ -14,6 +14,12 @@ class MergeDict(object):
def __init__(self, *dicts): def __init__(self, *dicts):
self.dicts = dicts self.dicts = dicts
def __bool__(self):
return any(self.dicts)
def __nonzero__(self):
return type(self).__bool__(self)
def __getitem__(self, key): def __getitem__(self, key):
for dict_ in self.dicts: for dict_ in self.dicts:
try: try:
......
...@@ -203,6 +203,13 @@ class MergeDictTests(SimpleTestCase): ...@@ -203,6 +203,13 @@ class MergeDictTests(SimpleTestCase):
('key2', ['value2', 'value3']), ('key2', ['value2', 'value3']),
('key4', ['value5', 'value6'])]) ('key4', ['value5', 'value6'])])
def test_bool_casting(self):
empty = MergeDict({}, {}, {})
not_empty = MergeDict({}, {}, {"key": "value"})
self.assertFalse(empty)
self.assertTrue(not_empty)
class MultiValueDictTests(SimpleTestCase): class MultiValueDictTests(SimpleTestCase):
def test_multivaluedict(self): def test_multivaluedict(self):
......
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