diff options
| author | Simon Charette <charette.s@gmail.com> | 2013-03-01 15:32:39 -0500 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2013-03-02 03:24:08 -0500 |
| commit | fb3d85bd14f1f7a8969ef8c54f2f0603e161f428 (patch) | |
| tree | 19569201954e830fd2e8d8a9d7fba4a32ecebf30 | |
| parent | 952ba5237ea62e7647cdd5214b1df79c0e7cea38 (diff) | |
Fixed #10399 -- Tested that o2o field updates are not constrained by an inner query.
| -rw-r--r-- | tests/model_inheritance/tests.py | 26 |
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) |
