50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from django.test import TestCase
|
|
|
|
from models import A, B, D
|
|
|
|
class SimpleTest(TestCase):
|
|
def setUp(self):
|
|
self.a1 = A.objects.create()
|
|
self.a2 = A.objects.create()
|
|
for x in range(20):
|
|
B.objects.create(a=self.a1)
|
|
D.objects.create(a=self.a1)
|
|
|
|
def test_nonempty_update(self):
|
|
"""
|
|
Test that update changes the right number of rows for a nonempty queryset
|
|
"""
|
|
num_updated = self.a1.b_set.update(y=100)
|
|
self.failUnlessEqual(num_updated, 20)
|
|
cnt = B.objects.filter(y=100).count()
|
|
self.failUnlessEqual(cnt, 20)
|
|
|
|
def test_empty_update(self):
|
|
"""
|
|
Test that update changes the right number of rows for an empty queryset
|
|
"""
|
|
num_updated = self.a2.b_set.update(y=100)
|
|
self.failUnlessEqual(num_updated, 0)
|
|
cnt = B.objects.filter(y=100).count()
|
|
self.failUnlessEqual(cnt, 0)
|
|
|
|
def test_nonempty_update_with_inheritance(self):
|
|
"""
|
|
Test that update changes the right number of rows for an empty queryset
|
|
when the update affects only a base table
|
|
"""
|
|
num_updated = self.a1.d_set.update(y=100)
|
|
self.failUnlessEqual(num_updated, 20)
|
|
cnt = D.objects.filter(y=100).count()
|
|
self.failUnlessEqual(cnt, 20)
|
|
|
|
def test_empty_update_with_inheritance(self):
|
|
"""
|
|
Test that update changes the right number of rows for an empty queryset
|
|
when the update affects only a base table
|
|
"""
|
|
num_updated = self.a2.d_set.update(y=100)
|
|
self.failUnlessEqual(num_updated, 0)
|
|
cnt = D.objects.filter(y=100).count()
|
|
self.failUnlessEqual(cnt, 0)
|