Added no_sub_classes context manager and queryset helper (#312)
This commit is contained in:
@@ -3322,7 +3322,7 @@ class QuerySetTest(unittest.TestCase):
|
||||
|
||||
self.assertEqual(q, 2)
|
||||
|
||||
def test_disable_inheritance_queryset(self):
|
||||
def test_no_sub_classes(self):
|
||||
class A(Document):
|
||||
x = IntField()
|
||||
y = IntField()
|
||||
@@ -3332,15 +3332,34 @@ class QuerySetTest(unittest.TestCase):
|
||||
class B(A):
|
||||
z = IntField()
|
||||
|
||||
class C(B):
|
||||
zz = IntField()
|
||||
|
||||
A.drop_collection()
|
||||
|
||||
A(x=10, y=20).save()
|
||||
A(x=15, y=30).save()
|
||||
B(x=20, y=40).save()
|
||||
B(x=30, y=50).save()
|
||||
C(x=40, y=60).save()
|
||||
|
||||
for obj in A.objects.disable_inheritance():
|
||||
self.assertEqual(A.objects.no_sub_classes().count(), 2)
|
||||
self.assertEqual(A.objects.count(), 5)
|
||||
|
||||
self.assertEqual(B.objects.no_sub_classes().count(), 2)
|
||||
self.assertEqual(B.objects.count(), 3)
|
||||
|
||||
self.assertEqual(C.objects.no_sub_classes().count(), 1)
|
||||
self.assertEqual(C.objects.count(), 1)
|
||||
|
||||
for obj in A.objects.no_sub_classes():
|
||||
self.assertEqual(obj.__class__, A)
|
||||
|
||||
for obj in B.objects.no_sub_classes():
|
||||
self.assertEqual(obj.__class__, B)
|
||||
|
||||
for obj in C.objects.no_sub_classes():
|
||||
self.assertEqual(obj.__class__, C)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user