[Changeset] r12227 - in django/trunk: . django/db/models tests/modeltests/validation

0 views
Skip to first unread message

nor...@djangoproject.com

unread,
Jan 14, 2010, 12:04:54 PM1/14/10
to django-...@googlegroups.com
Author: jkocherhans
Date: 2010-01-14 11:04:53 -0600 (Thu, 14 Jan 2010)
New Revision: 12227

Modified:
django/trunk/AUTHORS
django/trunk/django/db/models/base.py
django/trunk/tests/modeltests/validation/test_unique.py
Log:
Fixed #12560. Changed validate_unique to stop checking null primary key values. Thanks, Honza Kr?\195?\161l.

Modified: django/trunk/AUTHORS
===================================================================
--- django/trunk/AUTHORS 2010-01-14 14:55:36 UTC (rev 12226)
+++ django/trunk/AUTHORS 2010-01-14 17:04:53 UTC (rev 12227)
@@ -256,7 +256,7 @@
Gasper Koren
Martin Kosír <mar...@martinkosir.net>
Arthur Koziel <http://arthurkoziel.com>
- Honza Kral <honza...@gmail.com>
+ Honza Král <honza...@gmail.com>
Meir Kriheli <http://mksoft.co.il/>
Bruce Kroeze <http://coderseye.com/>
krzysie...@silvermedia.pl

Modified: django/trunk/django/db/models/base.py
===================================================================
--- django/trunk/django/db/models/base.py 2010-01-14 14:55:36 UTC (rev 12226)
+++ django/trunk/django/db/models/base.py 2010-01-14 17:04:53 UTC (rev 12227)
@@ -715,7 +715,7 @@
for field_name in unique_check:
f = self._meta.get_field(field_name)
lookup_value = getattr(self, f.attname)
- if f.null and lookup_value is None:
+ if lookup_value is None:
# no value, skip the lookup
continue
if f.primary_key and not getattr(self, '_adding', False):

Modified: django/trunk/tests/modeltests/validation/test_unique.py
===================================================================
--- django/trunk/tests/modeltests/validation/test_unique.py 2010-01-14 14:55:36 UTC (rev 12226)
+++ django/trunk/tests/modeltests/validation/test_unique.py 2010-01-14 17:04:53 UTC (rev 12227)
@@ -43,18 +43,26 @@
settings.DEBUG = self._old_debug
super(PerformUniqueChecksTest, self).tearDown()

- def test_primary_key_unique_check_performed_when_adding(self):
- """Regression test for #12132"""
- l = len(connection.queries)
+ def test_primary_key_unique_check_not_performed_when_adding_and_pk_not_specified(self):
+ # Regression test for #12560
+ query_count = len(connection.queries)
mtv = ModelToValidate(number=10, name='Some Name')
setattr(mtv, '_adding', True)
mtv.full_clean()
- self.assertEqual(l+1, len(connection.queries))
+ self.assertEqual(query_count, len(connection.queries))

+ def test_primary_key_unique_check_performed_when_adding_and_pk_specified(self):
+ # Regression test for #12560
+ query_count = len(connection.queries)
+ mtv = ModelToValidate(number=10, name='Some Name', id=123)
+ setattr(mtv, '_adding', True)
+ mtv.full_clean()
+ self.assertEqual(query_count + 1, len(connection.queries))
+
def test_primary_key_unique_check_not_performed_when_not_adding(self):
- """Regression test for #12132"""
- l = len(connection.queries)
+ # Regression test for #12132
+ query_count= len(connection.queries)
mtv = ModelToValidate(number=10, name='Some Name')
mtv.full_clean()
- self.assertEqual(l, len(connection.queries))
+ self.assertEqual(query_count, len(connection.queries))

Reply all
Reply to author
Forward
0 new messages