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.