Fixed #26026 -- Fixed isinstance crash comparing EmptyQuerySet to non-QuerySet.

This commit is contained in:
Anderson Resende 2016-01-05 23:47:27 -03:00 committed by Tim Graham
parent b643386668
commit b5f8c81ce1
2 changed files with 2 additions and 1 deletions

View File

@ -1171,7 +1171,7 @@ class QuerySet(object):
class InstanceCheckMeta(type): class InstanceCheckMeta(type):
def __instancecheck__(self, instance): def __instancecheck__(self, instance):
return instance.query.is_empty() return isinstance(instance, QuerySet) and instance.query.is_empty()
class EmptyQuerySet(six.with_metaclass(InstanceCheckMeta)): class EmptyQuerySet(six.with_metaclass(InstanceCheckMeta)):

View File

@ -367,6 +367,7 @@ class ModelTest(TestCase):
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
EmptyQuerySet() EmptyQuerySet()
self.assertIsInstance(Article.objects.none(), EmptyQuerySet) self.assertIsInstance(Article.objects.none(), EmptyQuerySet)
self.assertFalse(isinstance('', EmptyQuerySet))
def test_emptyqs_values(self): def test_emptyqs_values(self):
# test for #15959 # test for #15959