summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-04-28 11:51:16 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-04-28 11:51:16 +0000
commitff6e529502976b24906dd59636c3795218c6d708 (patch)
tree25f8d566b1bd23b71ee2fdbd434f449b706bb3af
parent1bb8260084e6a44308d4707c3568a4daa143dacd (diff)
Added a test to demonstrate the remaining problem in #7095.
Only fails for MySQL (because they've made some interesting syntax choices). Refs #7095. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7495 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--tests/regressiontests/queries/models.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py
index e108c46352..6fd361ec19 100644
--- a/tests/regressiontests/queries/models.py
+++ b/tests/regressiontests/queries/models.py
@@ -117,6 +117,24 @@ class LoopZ(models.Model):
class Meta:
ordering = ['z']
+# A model and custom default manager combination.
+class CustomManager(models.Manager):
+ def get_query_set(self):
+ return super(CustomManager, self).get_query_set().filter(public=True,
+ tag__name='t1')
+
+class ManagedModel(models.Model):
+ data = models.CharField(max_length=10)
+ tag = models.ForeignKey(Tag)
+ public = models.BooleanField(default=True)
+
+ objects = CustomManager()
+ normal_manager = models.Manager()
+
+ def __unicode__(self):
+ return self.data
+
+
__test__ = {'API_TESTS':"""
>>> t1 = Tag(name='t1')
>>> t1.save()
@@ -677,5 +695,11 @@ More twisted cases, involving nested negations.
>>> Item.objects.exclude(~Q(tags__name='t1', name='one'), name='two')
[<Item: four>, <Item: one>, <Item: three>]
+Bug #7095
+Updates that are filtered on the model being updated are somewhat tricky to get
+in MySQL. This exercises that case.
+>>> mm = ManagedModel.objects.create(data='mm1', tag=t1, public=True)
+>>> ManagedModel.objects.update(data='mm')
+
"""}