From 333cbdcd2de4546e33ad50ebd8b67e1a1e87aeec Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 5 Aug 2015 15:52:11 -0400 Subject: Fixed #24951 -- Fixed AssertionError in delete queries involving a foreign/primary key. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks Anssi Kääriäinen for help. --- tests/one_to_one/models.py | 2 +- tests/one_to_one/tests.py | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/one_to_one/models.py b/tests/one_to_one/models.py index 788d81a592..2742fb186e 100644 --- a/tests/one_to_one/models.py +++ b/tests/one_to_one/models.py @@ -83,7 +83,7 @@ class MultiModel(models.Model): class Target(models.Model): - pass + name = models.CharField(max_length=50) class Pointer(models.Model): diff --git a/tests/one_to_one/tests.py b/tests/one_to_one/tests.py index ee0536906c..49da8dfbd2 100644 --- a/tests/one_to_one/tests.py +++ b/tests/one_to_one/tests.py @@ -5,7 +5,8 @@ from django.test import TestCase from .models import ( Bar, Director, Favorites, HiddenPointer, ManualPrimaryKey, MultiModel, - Place, RelatedModel, Restaurant, School, Target, UndergroundBar, Waiter, + Place, Pointer, RelatedModel, Restaurant, School, Target, UndergroundBar, + Waiter, ) @@ -256,6 +257,13 @@ class OneToOneTests(TestCase): [] ) + def test_o2o_primary_key_delete(self): + t = Target.objects.create(name='name') + Pointer.objects.create(other=t) + num_deleted, objs = Pointer.objects.filter(other__name='name').delete() + self.assertEqual(num_deleted, 1) + self.assertEqual(objs, {'one_to_one.Pointer': 1}) + def test_reverse_object_does_not_exist_cache(self): """ Regression for #13839 and #17439. -- cgit v1.3