Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed a couple of `assert` syntax warnings mistakingly introduced in …

…r16966 and added some tests to prevent future regressions. Thanks to Anssi Kääriäinen for the report.

Refs #12467.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16971 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit c58e5724bcebc74ccfbc49a4a29de6fd0fa6103e 1 parent 639400d
@jphalip jphalip authored
View
8 django/db/models/fields/__init__.py
@@ -510,8 +510,8 @@ class AutoField(Field):
'invalid': _(u"'%s' value must be an integer."),
}
def __init__(self, *args, **kwargs):
- assert (kwargs.get('primary_key', False) is True,
- "%ss must have primary_key=True." % self.__class__.__name__)
+ assert kwargs.get('primary_key', False) is True, \
+ "%ss must have primary_key=True." % self.__class__.__name__
kwargs['blank'] = True
Field.__init__(self, *args, **kwargs)
@@ -536,8 +536,8 @@ def get_prep_value(self, value):
return int(value)
def contribute_to_class(self, cls, name):
- assert (not cls._meta.has_auto_field,
- "A model can't have more than one AutoField.")
+ assert not cls._meta.has_auto_field, \
+ "A model can't have more than one AutoField."
super(AutoField, self).contribute_to_class(cls, name)
cls._meta.has_auto_field = True
cls._meta.auto_field = self
View
10 tests/modeltests/validation/models.py
@@ -90,3 +90,13 @@ class GenericIPAddressTestModel(models.Model):
class GenericIPAddrUnpackUniqueTest(models.Model):
generic_v4unpack_ip = models.GenericIPAddressField(blank=True, unique=True, unpack_ipv4=True)
+
+
+try:
+ # A model can't have multiple AutoFields
+ # Refs #12467.
+ class MultipleAutoFields(models.Model):
+ auto1 = models.AutoField(primary_key=True)
+ auto2 = models.AutoField(primary_key=True)
+except AssertionError, e:
+ assert e.message == u"A model can't have more than one AutoField."
View
6 tests/modeltests/validation/test_error_messages.py
@@ -12,6 +12,12 @@ def test_autofield_field_raises_error_message(self):
f.clean('foo', None)
except ValidationError, e:
self.assertEqual(e.messages, [u"'foo' value must be an integer."])
+ # primary_key must be True. Refs #12467.
+ self.assertRaises(AssertionError, models.AutoField, 'primary_key', False)
+ try:
+ models.AutoField(primary_key=False)
+ except AssertionError, e:
+ self.assertEqual(e.message, u"AutoFields must have primary_key=True.")
def test_integer_field_raises_error_message(self):
f = models.IntegerField()
Please sign in to comment.
Something went wrong with that request. Please try again.