summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2013-03-01 15:32:39 -0500
committerSimon Charette <charette.s@gmail.com>2013-03-02 03:24:08 -0500
commitfb3d85bd14f1f7a8969ef8c54f2f0603e161f428 (patch)
tree19569201954e830fd2e8d8a9d7fba4a32ecebf30 /tests
parent952ba5237ea62e7647cdd5214b1df79c0e7cea38 (diff)
Fixed #10399 -- Tested that o2o field updates are not constrained by an inner query.
Diffstat (limited to 'tests')
-rw-r--r--tests/model_inheritance/tests.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py
index 16d2242fbe..46cef3a55d 100644
--- a/tests/model_inheritance/tests.py
+++ b/tests/model_inheritance/tests.py
@@ -1,9 +1,11 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
from operator import attrgetter
from django.core.exceptions import FieldError
+from django.db import connection
from django.test import TestCase
+from django.test.testcases import CaptureQueriesContext
from django.utils import six
from .models import (Chef, CommonInfo, ItalianRestaurant, ParkingLot, Place,
@@ -294,3 +296,25 @@ class ModelInheritanceTests(TestCase):
)
with self.assertNumQueries(6):
ir.save()
+
+ def test_update_parent_filtering(self):
+ """
+ Test that updating a field of a model subclass doesn't issue an UPDATE
+ query constrained by an inner query.
+ Refs #10399
+ """
+ supplier = Supplier.objects.create(
+ name='Central market',
+ address='610 some street'
+ )
+ # Capture the expected query in a database agnostic way
+ with CaptureQueriesContext(connection) as captured_queries:
+ Place.objects.filter(pk=supplier.pk).update(name=supplier.name)
+ expected_sql = captured_queries[0]['sql']
+ # Capture the queries executed when a subclassed model instance is saved.
+ with CaptureQueriesContext(connection) as captured_queries:
+ supplier.save(update_fields=('name',))
+ for query in captured_queries:
+ sql = query['sql']
+ if 'UPDATE' in sql:
+ self.assertEqual(expected_sql, sql)