From fcf8312ade4375faf6027afe610fb76bcdead084 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Tue, 7 Jun 2011 20:51:59 +0000 Subject: Made clear() on a reverse foreign key significantly more efficient. Thanks to Andrew Godwin for the review. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16335 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/modeltests/many_to_one/tests.py | 6 ++++-- tests/modeltests/many_to_one_null/tests.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/modeltests/many_to_one/tests.py b/tests/modeltests/many_to_one/tests.py index 2d474c0ddb..8a2af2157b 100644 --- a/tests/modeltests/many_to_one/tests.py +++ b/tests/modeltests/many_to_one/tests.py @@ -1,10 +1,13 @@ +from copy import deepcopy from datetime import datetime + from django.test import TestCase from django.core.exceptions import FieldError + from models import Article, Reporter -class ManyToOneTests(TestCase): +class ManyToOneTests(TestCase): def setUp(self): # Create a few Reporters. self.r = Reporter(first_name='John', last_name='Smith', email='john@example.com') @@ -368,5 +371,4 @@ class ManyToOneTests(TestCase): # Regression for #12876 -- Model methods that include queries that # recursive don't cause recursion depth problems under deepcopy. self.r.cached_query = Article.objects.filter(reporter=self.r) - from copy import deepcopy self.assertEqual(repr(deepcopy(self.r)), "") diff --git a/tests/modeltests/many_to_one_null/tests.py b/tests/modeltests/many_to_one_null/tests.py index c78f980871..0850cca2b1 100644 --- a/tests/modeltests/many_to_one_null/tests.py +++ b/tests/modeltests/many_to_one_null/tests.py @@ -1,8 +1,10 @@ +from __future__ import with_statement + from django.test import TestCase from models import Reporter, Article -class ManyToOneNullTests(TestCase): +class ManyToOneNullTests(TestCase): def setUp(self): # Create a Reporter. self.r = Reporter(name='John Smith') @@ -82,3 +84,11 @@ class ManyToOneNullTests(TestCase): self.assertQuerysetEqual(self.r.article_set.all(), []) self.assertQuerysetEqual(Article.objects.filter(reporter__isnull=True), ['', '']) + + def test_remove_efficiency(self): + r = Reporter.objects.create() + for _ in xrange(3): + r.article_set.create() + with self.assertNumQueries(1): + r.article_set.clear() + self.assertEqual(r.article_set.count(), 0) \ No newline at end of file -- cgit v1.3