mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	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:
		
				
					committed by
					
						 Baptiste Mispelon
						Baptiste Mispelon
					
				
			
			
				
	
			
			
			
						parent
						
							2e5b2c612e
						
					
				
				
					commit
					b962653060
				
			| @@ -162,10 +162,13 @@ class QuerySet(object): | |||||||
|         self._fetch_all() |         self._fetch_all() | ||||||
|         return iter(self._result_cache) |         return iter(self._result_cache) | ||||||
|  |  | ||||||
|     def __nonzero__(self): |     def __bool__(self): | ||||||
|         self._fetch_all() |         self._fetch_all() | ||||||
|         return bool(self._result_cache) |         return bool(self._result_cache) | ||||||
|  |  | ||||||
|  |     def __nonzero__(self):      # Python 2 compatibility | ||||||
|  |         return type(self).__bool__(self) | ||||||
|  |  | ||||||
|     def __getitem__(self, k): |     def __getitem__(self, k): | ||||||
|         """ |         """ | ||||||
|         Retrieves an item or slice from the set of results. |         Retrieves an item or slice from the set of results. | ||||||
|   | |||||||
| @@ -271,9 +271,12 @@ class OrderedSet(object): | |||||||
|     def __contains__(self, item): |     def __contains__(self, item): | ||||||
|         return item in self.dict |         return item in self.dict | ||||||
|  |  | ||||||
|     def __nonzero__(self): |     def __bool__(self): | ||||||
|         return bool(self.dict) |         return bool(self.dict) | ||||||
|  |  | ||||||
|  |     def __nonzero__(self):      # Python 2 compatibility | ||||||
|  |         return type(self).__bool__(self) | ||||||
|  |  | ||||||
|  |  | ||||||
| class MultiValueDictKeyError(KeyError): | class MultiValueDictKeyError(KeyError): | ||||||
|     pass |     pass | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ import pickle | |||||||
| from django.test import SimpleTestCase | from django.test import SimpleTestCase | ||||||
| from django.test.utils import IgnoreDeprecationWarningsMixin | from django.test.utils import IgnoreDeprecationWarningsMixin | ||||||
| from django.utils.datastructures import (DictWrapper, ImmutableList, | from django.utils.datastructures import (DictWrapper, ImmutableList, | ||||||
|     MultiValueDict, MultiValueDictKeyError, MergeDict, SortedDict) |     MultiValueDict, MultiValueDictKeyError, MergeDict, OrderedSet, SortedDict) | ||||||
| from django.utils import six | from django.utils import six | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -206,6 +206,16 @@ class MergeDictTests(IgnoreDeprecationWarningsMixin, SimpleTestCase): | |||||||
|             d1['key2'] |             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): | class MultiValueDictTests(SimpleTestCase): | ||||||
|  |  | ||||||
|     def test_multivaluedict(self): |     def test_multivaluedict(self): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user