Permalink
Browse files

Edited model and field checks for grammar and consistency.

  • Loading branch information...
1 parent bc4dc6e commit 82ac3894867b111f83252e808b3ed47f38ef5378 @freakboy3742 freakboy3742 committed Mar 3, 2014
@@ -36,14 +36,14 @@ def check_model_signals(app_configs=None, **kwargs):
description = "An instance of the `%s` class" % receiver.__class__.__name__
errors.append(
Error(
- "%s was connected to the `%s` signal "
+ "%s was connected to the '%s' signal "
"with a lazy reference to the '%s' sender, "
"which has not been installed." % (
description, name, '.'.join(reference)
),
obj=receiver.__module__,
hint=None,
- id='E014'
+ id='signals.E001'
)
)
return errors
@@ -197,10 +197,10 @@ def _check_field_name(self):
if self.name.endswith('_'):
return [
checks.Error(
- 'Field names must not end with underscores.',
+ 'Field names must not end with an underscore.',
hint=None,
obj=self,
- id='E001',
+ id='fields.E001',
)
]
elif '__' in self.name:
@@ -209,16 +209,16 @@ def _check_field_name(self):
'Field names must not contain "__".',
hint=None,
obj=self,
- id='E052',
+ id='fields.E002',
)
]
elif self.name == 'pk':
return [
checks.Error(
- 'Cannot use "pk" as a field name since it is a reserved name.',
+ "'pk' is a reserved word that cannot be used as a field name.",
hint=None,
obj=self,
- id='E051',
+ id='fields.E003',
)
]
else:
@@ -230,24 +230,22 @@ def _check_choices(self):
not is_iterable(self.choices)):
return [
checks.Error(
- '"choices" must be an iterable (e.g., a list or tuple).',
+ "'choices' must be an iterable (e.g., a list or tuple).",
hint=None,
obj=self,
- id='E033',
+ id='fields.E004',
)
]
elif any(isinstance(choice, six.string_types) or
not is_iterable(choice) or len(choice) != 2
for choice in self.choices):
return [
checks.Error(
- ('All "choices" elements must be a tuple of two '
- 'elements (the first one is the actual value '
- 'to be stored and the second element is '
- 'the human-readable name).'),
+ ("'choices' must be an iterable containing "
+ "(actual value, human readable name) tuples."),
hint=None,
obj=self,
- id='E034',
+ id='fields.E005',
)
]
else:
@@ -259,10 +257,10 @@ def _check_db_index(self):
if self.db_index not in (None, True, False):
return [
checks.Error(
- '"db_index" must be either None, True or False.',
+ "'db_index' must be None, True or False.",
hint=None,
obj=self,
- id='E035',
+ id='fields.E006',
)
]
else:
@@ -277,10 +275,10 @@ def _check_null_allowed_for_primary_keys(self):
return [
checks.Error(
'Primary keys must not have null=True.',
- hint=('Set null=False on the field or '
+ hint=('Set null=False on the field, or '
'remove primary_key=True argument.'),
obj=self,
- id='E036',
+ id='fields.E007',
)
]
else:
@@ -864,10 +862,10 @@ def _check_primary_key(self):
if not self.primary_key:
return [
checks.Error(
- 'The field must have primary_key=True, because it is an AutoField.',
+ 'AutoFields must set primary_key=True.',
hint=None,
obj=self,
- id='E048',
+ id='fields.E100',
),
]
else:
@@ -940,10 +938,10 @@ def _check_null(self, **kwargs):
if getattr(self, 'null', False):
return [
checks.Error(
- 'BooleanFields do not acceps null values.',
+ 'BooleanFields do not accept null values.',
hint='Use a NullBooleanField instead.',
obj=self,
- id='E037',
+ id='fields.E110',
)
]
else:
@@ -1020,19 +1018,19 @@ def _check_max_length_attibute(self, **kwargs):
except TypeError:
return [
checks.Error(
- 'The field must have "max_length" attribute.',
+ "CharFields must define a 'max_length' attribute.",
hint=None,
obj=self,
- id='E038',
+ id='fields.E120',
)
]
except ValueError:
return [
checks.Error(
- '"max_length" must be a positive integer.',
+ "'max_length' must be a positive integer.",
hint=None,
obj=self,
- id='E039',
+ id='fields.E121',
)
]
else:
@@ -1305,75 +1303,79 @@ def __init__(self, verbose_name=None, name=None, max_digits=None,
def check(self, **kwargs):
errors = super(DecimalField, self).check(**kwargs)
- errors.extend(self._check_decimal_places_and_max_digits(**kwargs))
- return errors
- def _check_decimal_places_and_max_digits(self, **kwargs):
- errors = self.__check_decimal_places()
- errors += self.__check_max_digits()
- if not errors and int(self.decimal_places) > int(self.max_digits):
- errors.append(
- checks.Error(
- '"max_digits" must be greater or equal to "decimal_places".',
- hint=None,
- obj=self,
- id='E040',
- )
- )
+ digits_errors = self._check_decimal_places()
+ digits_errors.extend(self._check_max_digits())
+ if not digits_errors:
+ errors.extend(self._check_decimal_places_and_max_digits(**kwargs))
+ else:
+ errors.extend(digits_errors)
return errors
- def __check_decimal_places(self):
+ def _check_decimal_places(self):
try:
decimal_places = int(self.decimal_places)
if decimal_places < 0:
raise ValueError()
except TypeError:
return [
checks.Error(
- 'The field requires a "decimal_places" attribute.',
+ "DecimalFields must define a 'decimal_places' attribute.",
hint=None,
obj=self,
- id='E041',
+ id='fields.E130',
)
]
except ValueError:
return [
checks.Error(
- '"decimal_places" attribute must be a non-negative integer.',
+ "'decimal_places' must be a non-negative integer.",
hint=None,
obj=self,
- id='E042',
+ id='fields.E131',
)
]
else:
return []
- def __check_max_digits(self):
+ def _check_max_digits(self):
try:
max_digits = int(self.max_digits)
if max_digits <= 0:
raise ValueError()
except TypeError:
return [
checks.Error(
- 'The field requires a "max_digits" attribute.',
+ "DecimalFields must define a 'max_digits' attribute.",
hint=None,
obj=self,
- id='E043',
+ id='fields.E132',
)
]
except ValueError:
return [
checks.Error(
- '"max_digits" attribute must be a positive integer.',
+ "'max_digits' must be a positive integer.",
hint=None,
obj=self,
- id='E044',
+ id='fields.E133',
)
]
else:
return []
+ def _check_decimal_places_and_max_digits(self, **kwargs):
+ if int(self.decimal_places) > int(self.max_digits):
+ return [
+ checks.Error(
+ "'max_digits' must be greater or equal to 'decimal_places'.",
+ hint=None,
+ obj=self,
+ id='fields.E134',
+ )
+ ]
+ return []
+
def deconstruct(self):
name, path, args, kwargs = super(DecimalField, self).deconstruct()
if self.max_digits:
@@ -1481,10 +1483,10 @@ def _check_allowing_files_or_folders(self, **kwargs):
if not self.allow_files and not self.allow_folders:
return [
checks.Error(
- 'The field must have either "allow_files" or "allow_folders" set to True.',
+ "FilePathFields must have either 'allow_files' or 'allow_folders' set to True.",
hint=None,
obj=self,
- id='E045',
+ id='fields.E140',
)
]
return []
@@ -1659,11 +1661,11 @@ def _check_blank_and_null_values(self, **kwargs):
if not getattr(self, 'null', False) and getattr(self, 'blank', False):
return [
checks.Error(
- ('The field cannot accept blank values if null values '
- 'are not allowed, as blank values are stored as null.'),
+ ('GenericIPAddressFields cannot have blank=True if null=False, '
+ 'as blank values are stored as nulls.'),
hint=None,
obj=self,
- id='E046',
+ id='fields.E150',
)
]
return []
@@ -246,10 +246,10 @@ def _check_unique(self):
if self._unique_set_explicitly:
return [
checks.Error(
- '"unique" is not a valid argument for %s.' % self.__class__.__name__,
+ "'unique' is not a valid argument for a %s." % self.__class__.__name__,
hint=None,
obj=self,
- id='E049',
+ id='fields.E200',
)
]
else:
@@ -259,10 +259,10 @@ def _check_primary_key(self):
if self._primary_key_set_explicitly:
return [
checks.Error(
- '"primary_key" is not a valid argument for %s.' % self.__class__.__name__,
+ "'primary_key' is not a valid argument for a %s." % self.__class__.__name__,
hint=None,
obj=self,
- id='E050',
+ id='fields.E201',
)
]
else:
@@ -392,11 +392,11 @@ def _check_image_library_installed(self):
except ImproperlyConfigured:
return [
checks.Error(
- 'To use ImageFields, Pillow must be installed.',
+ 'Cannot use ImageField because Pillow is not installed.',
hint=('Get Pillow at https://pypi.python.org/pypi/Pillow '
'or run command "pip install pillow".'),
obj=self,
- id='E032',
+ id='fields.E210',
)
]
else:
Oops, something went wrong. Retry.

0 comments on commit 82ac389

Please sign in to comment.