Fixed #23664 -- Provided a consistent definition for OrderedSet.__bool__
This also defines QuerySet.__bool__ for consistency though this should not have any consequence as bool(qs) used to fallback on QuerySet.__len__ in Py3.
This commit is contained in:
parent
2e5b2c612e
commit
b962653060
|
@ -162,10 +162,13 @@ class QuerySet(object):
|
|||
self._fetch_all()
|
||||
return iter(self._result_cache)
|
||||
|
||||
def __nonzero__(self):
|
||||
def __bool__(self):
|
||||
self._fetch_all()
|
||||
return bool(self._result_cache)
|
||||
|
||||
def __nonzero__(self): # Python 2 compatibility
|
||||
return type(self).__bool__(self)
|
||||
|
||||
def __getitem__(self, k):
|
||||
"""
|
||||
Retrieves an item or slice from the set of results.
|
||||
|
|
|
@ -271,9 +271,12 @@ class OrderedSet(object):
|
|||
def __contains__(self, item):
|
||||
return item in self.dict
|
||||
|
||||
def __nonzero__(self):
|
||||
def __bool__(self):
|
||||
return bool(self.dict)
|
||||
|
||||
def __nonzero__(self): # Python 2 compatibility
|
||||
return type(self).__bool__(self)
|
||||
|
||||
|
||||
class MultiValueDictKeyError(KeyError):
|
||||
pass
|
||||
|
|
|
@ -8,7 +8,7 @@ import pickle
|
|||
from django.test import SimpleTestCase
|
||||
from django.test.utils import IgnoreDeprecationWarningsMixin
|
||||
from django.utils.datastructures import (DictWrapper, ImmutableList,
|
||||
MultiValueDict, MultiValueDictKeyError, MergeDict, SortedDict)
|
||||
MultiValueDict, MultiValueDictKeyError, MergeDict, OrderedSet, SortedDict)
|
||||
from django.utils import six
|
||||
|
||||
|
||||
|
@ -206,6 +206,16 @@ class MergeDictTests(IgnoreDeprecationWarningsMixin, SimpleTestCase):
|
|||
d1['key2']
|
||||
|
||||
|
||||
class OrderedSetTests(SimpleTestCase):
|
||||
|
||||
def test_bool(self):
|
||||
# Refs #23664
|
||||
s = OrderedSet()
|
||||
self.assertFalse(s)
|
||||
s.add(1)
|
||||
self.assertTrue(s)
|
||||
|
||||
|
||||
class MultiValueDictTests(SimpleTestCase):
|
||||
|
||||
def test_multivaluedict(self):
|
||||
|
|
Loading…
Reference in New Issue