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.k...@gmail.com>
+    Honza Král <honza.k...@gmail.com>
     Meir Kriheli <http://mksoft.co.il/>
     Bruce Kroeze <http://coderseye.com/>
     krzysiek.paw...@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))
 

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.


Reply via email to