summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-02-12 11:36:46 -0500
committerTim Graham <timograham@gmail.com>2016-02-12 13:01:25 -0500
commit004ba0f99eb25c3f32aa3a41707534e955d1878e (patch)
tree74273e902b824f7288eac57ba961cbd4b572223c /tests/invalid_models_tests
parent36f1f5cfb008c465f372389080cdd92671a6cab7 (diff)
Removed unneeded hint=None/obj=None in system check messages.
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_backend_specific.py2
-rw-r--r--tests/invalid_models_tests/test_models.py31
-rw-r--r--tests/invalid_models_tests/test_ordinary_fields.py21
-rw-r--r--tests/invalid_models_tests/test_relative_fields.py270
4 files changed, 146 insertions, 178 deletions
diff --git a/tests/invalid_models_tests/test_backend_specific.py b/tests/invalid_models_tests/test_backend_specific.py
index fd73853a03..05ba04a4ea 100644
--- a/tests/invalid_models_tests/test_backend_specific.py
+++ b/tests/invalid_models_tests/test_backend_specific.py
@@ -19,7 +19,7 @@ class BackendSpecificChecksTests(SimpleTestCase):
@mock.patch('django.db.models.fields.router.allow_migrate', new=dummy_allow_migrate)
def test_check_field(self):
""" Test if backend specific checks are performed. """
- error = Error('an error', hint=None)
+ error = Error('an error')
class Model(models.Model):
field = models.IntegerField()
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py
index 5764764341..e5d5406cc4 100644
--- a/tests/invalid_models_tests/test_models.py
+++ b/tests/invalid_models_tests/test_models.py
@@ -42,7 +42,6 @@ class IndexTogetherTests(SimpleTestCase):
expected = [
Error(
"'index_together' must be a list or tuple.",
- hint=None,
obj=Model,
id='models.E008',
),
@@ -58,7 +57,6 @@ class IndexTogetherTests(SimpleTestCase):
expected = [
Error(
"'index_together' must be a list or tuple.",
- hint=None,
obj=Model,
id='models.E008',
),
@@ -74,7 +72,6 @@ class IndexTogetherTests(SimpleTestCase):
expected = [
Error(
"All 'index_together' elements must be lists or tuples.",
- hint=None,
obj=Model,
id='models.E009',
),
@@ -92,7 +89,6 @@ class IndexTogetherTests(SimpleTestCase):
expected = [
Error(
"'index_together' refers to the non-existent field 'missing_field'.",
- hint=None,
obj=Model,
id='models.E012',
),
@@ -137,7 +133,6 @@ class IndexTogetherTests(SimpleTestCase):
Error(
"'index_together' refers to a ManyToManyField 'm2m', but "
"ManyToManyFields are not permitted in 'index_together'.",
- hint=None,
obj=Model,
id='models.E013',
),
@@ -158,7 +153,6 @@ class UniqueTogetherTests(SimpleTestCase):
expected = [
Error(
"'unique_together' must be a list or tuple.",
- hint=None,
obj=Model,
id='models.E010',
),
@@ -177,7 +171,6 @@ class UniqueTogetherTests(SimpleTestCase):
expected = [
Error(
"All 'unique_together' elements must be lists or tuples.",
- hint=None,
obj=Model,
id='models.E011',
),
@@ -193,7 +186,6 @@ class UniqueTogetherTests(SimpleTestCase):
expected = [
Error(
"'unique_together' must be a list or tuple.",
- hint=None,
obj=Model,
id='models.E010',
),
@@ -223,7 +215,6 @@ class UniqueTogetherTests(SimpleTestCase):
expected = [
Error(
"'unique_together' refers to the non-existent field 'missing_field'.",
- hint=None,
obj=Model,
id='models.E012',
),
@@ -244,7 +235,6 @@ class UniqueTogetherTests(SimpleTestCase):
Error(
"'unique_together' refers to a ManyToManyField 'm2m', but "
"ManyToManyFields are not permitted in 'unique_together'.",
- hint=None,
obj=Model,
id='models.E013',
),
@@ -264,13 +254,11 @@ class FieldNamesTests(SimpleTestCase):
expected = [
Error(
'Field names must not end with an underscore.',
- hint=None,
obj=Model._meta.get_field('field_'),
id='fields.E001',
),
Error(
'Field names must not end with an underscore.',
- hint=None,
obj=Model._meta.get_field('m2m_'),
id='fields.E001',
),
@@ -413,7 +401,6 @@ class FieldNamesTests(SimpleTestCase):
expected = [
Error(
'Field names must not contain "__".',
- hint=None,
obj=Model._meta.get_field('some__field'),
id='fields.E002',
)
@@ -428,7 +415,6 @@ class FieldNamesTests(SimpleTestCase):
expected = [
Error(
"'pk' is a reserved word that cannot be used as a field name.",
- hint=None,
obj=Model._meta.get_field('pk'),
id='fields.E003',
)
@@ -451,7 +437,6 @@ class ShadowingFieldsTests(SimpleTestCase):
Error(
"The field 'child' clashes with the field "
"'child' from model 'invalid_models_tests.parent'.",
- hint=None,
obj=Child._meta.get_field('child'),
id='models.E006',
)
@@ -476,7 +461,6 @@ class ShadowingFieldsTests(SimpleTestCase):
"The field 'id' from parent model "
"'invalid_models_tests.mother' clashes with the field 'id' "
"from parent model 'invalid_models_tests.father'.",
- hint=None,
obj=Child,
id='models.E005',
),
@@ -484,7 +468,6 @@ class ShadowingFieldsTests(SimpleTestCase):
"The field 'clash' from parent model "
"'invalid_models_tests.mother' clashes with the field 'clash' "
"from parent model 'invalid_models_tests.father'.",
- hint=None,
obj=Child,
id='models.E005',
)
@@ -508,7 +491,6 @@ class ShadowingFieldsTests(SimpleTestCase):
Error(
"The field 'f' clashes with the field 'f_id' "
"from model 'invalid_models_tests.parent'.",
- hint=None,
obj=Child._meta.get_field('f'),
id='models.E006',
)
@@ -533,7 +515,6 @@ class ShadowingFieldsTests(SimpleTestCase):
Error(
"The field 'clash' clashes with the field 'clash' "
"from model 'invalid_models_tests.grandparent'.",
- hint=None,
obj=GrandChild._meta.get_field('clash'),
id='models.E006',
)
@@ -553,7 +534,6 @@ class ShadowingFieldsTests(SimpleTestCase):
Error(
"The field 'fk_id' clashes with the field 'fk' from model "
"'invalid_models_tests.model'.",
- hint=None,
obj=Model._meta.get_field('fk_id'),
id='models.E006',
)
@@ -575,7 +555,6 @@ class OtherModelTests(SimpleTestCase):
Error(
"'id' can only be used as a field name if the field also sets "
"'primary_key=True'.",
- hint=None,
obj=Model,
id='models.E004',
),
@@ -592,7 +571,6 @@ class OtherModelTests(SimpleTestCase):
Error(
"'ordering' must be a tuple or list "
"(even if you want to order by only one field).",
- hint=None,
obj=Model,
id='models.E014',
),
@@ -636,7 +614,6 @@ class OtherModelTests(SimpleTestCase):
expected = [
Error(
"'ordering' and 'order_with_respect_to' cannot be used together.",
- hint=None,
obj=Answer,
id='models.E021',
),
@@ -657,7 +634,6 @@ class OtherModelTests(SimpleTestCase):
expected = [
Error(
"'ordering' refers to the non-existent field 'relation'.",
- hint=None,
obj=Model,
id='models.E015',
),
@@ -673,7 +649,6 @@ class OtherModelTests(SimpleTestCase):
expected = [
Error(
"'ordering' refers to the non-existent field 'missing_field'.",
- hint=None,
obj=Model,
id='models.E015',
)
@@ -693,7 +668,6 @@ class OtherModelTests(SimpleTestCase):
expected = [
Error(
"'ordering' refers to the non-existent field 'missing_fk_field_id'.",
- hint=None,
obj=Model,
id='models.E015',
)
@@ -724,8 +698,6 @@ class OtherModelTests(SimpleTestCase):
expected = [
Error(
"'TEST_SWAPPED_MODEL_BAD_VALUE' is not of the form 'app_label.app_name'.",
- hint=None,
- obj=None,
id='models.E001',
),
]
@@ -742,8 +714,6 @@ class OtherModelTests(SimpleTestCase):
Error(
"'TEST_SWAPPED_MODEL_BAD_MODEL' references 'not_an_app.Target', "
'which has not been installed, or is abstract.',
- hint=None,
- obj=None,
id='models.E002',
),
]
@@ -768,7 +738,6 @@ class OtherModelTests(SimpleTestCase):
Error(
"The model has two many-to-many relations through "
"the intermediate model 'invalid_models_tests.Membership'.",
- hint=None,
obj=Group,
id='models.E003',
)
diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py
index 2a7e912f8c..0dff216cb6 100644
--- a/tests/invalid_models_tests/test_ordinary_fields.py
+++ b/tests/invalid_models_tests/test_ordinary_fields.py
@@ -37,7 +37,6 @@ class AutoFieldTests(SimpleTestCase):
expected = [
Error(
'AutoFields must set primary_key=True.',
- hint=None,
obj=field,
id='fields.E100',
),
@@ -92,7 +91,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"CharFields must define a 'max_length' attribute.",
- hint=None,
obj=field,
id='fields.E120',
),
@@ -108,7 +106,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'max_length' must be a positive integer.",
- hint=None,
obj=field,
id='fields.E121',
),
@@ -124,7 +121,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'max_length' must be a positive integer.",
- hint=None,
obj=field,
id='fields.E121',
),
@@ -140,7 +136,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'max_length' must be a positive integer.",
- hint=None,
obj=field,
id='fields.E121',
),
@@ -156,7 +151,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'choices' must be an iterable (e.g., a list or tuple).",
- hint=None,
obj=field,
id='fields.E004',
),
@@ -172,7 +166,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'choices' must be an iterable containing (actual value, human readable name) tuples.",
- hint=None,
obj=field,
id='fields.E005',
),
@@ -188,7 +181,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
"'db_index' must be None, True or False.",
- hint=None,
obj=field,
id='fields.E006',
),
@@ -209,7 +201,6 @@ class CharFieldTests(TestCase):
expected = [
Error(
'MySQL does not allow unique CharFields to have a max_length > 255.',
- hint=None,
obj=field,
id='mysql.E001',
)
@@ -235,7 +226,6 @@ class DateFieldTests(TestCase):
"The options auto_now, auto_now_add, and default "
"are mutually exclusive. Only one of these options "
"may be present.",
- hint=None,
obj=field,
id='fields.E160',
))
@@ -341,13 +331,11 @@ class DecimalFieldTests(SimpleTestCase):
expected = [
Error(
"DecimalFields must define a 'decimal_places' attribute.",
- hint=None,
obj=field,
id='fields.E130',
),
Error(
"DecimalFields must define a 'max_digits' attribute.",
- hint=None,
obj=field,
id='fields.E132',
),
@@ -363,13 +351,11 @@ class DecimalFieldTests(SimpleTestCase):
expected = [
Error(
"'decimal_places' must be a non-negative integer.",
- hint=None,
obj=field,
id='fields.E131',
),
Error(
"'max_digits' must be a positive integer.",
- hint=None,
obj=field,
id='fields.E133',
),
@@ -385,13 +371,11 @@ class DecimalFieldTests(SimpleTestCase):
expected = [
Error(
"'decimal_places' must be a non-negative integer.",
- hint=None,
obj=field,
id='fields.E131',
),
Error(
"'max_digits' must be a positive integer.",
- hint=None,
obj=field,
id='fields.E133',
),
@@ -407,7 +391,6 @@ class DecimalFieldTests(SimpleTestCase):
expected = [
Error(
"'max_digits' must be greater or equal to 'decimal_places'.",
- hint=None,
obj=field,
id='fields.E134',
),
@@ -445,7 +428,6 @@ class FileFieldTests(SimpleTestCase):
expected = [
Error(
"'unique' is not a valid argument for a FileField.",
- hint=None,
obj=field,
id='fields.E200',
)
@@ -461,7 +443,6 @@ class FileFieldTests(SimpleTestCase):
expected = [
Error(
"'primary_key' is not a valid argument for a FileField.",
- hint=None,
obj=field,
id='fields.E201',
)
@@ -481,7 +462,6 @@ class FilePathFieldTests(SimpleTestCase):
expected = [
Error(
"FilePathFields must have either 'allow_files' or 'allow_folders' set to True.",
- hint=None,
obj=field,
id='fields.E140',
),
@@ -502,7 +482,6 @@ class GenericIPAddressFieldTests(SimpleTestCase):
Error(
('GenericIPAddressFields cannot have blank=True if null=False, '
'as blank values are stored as nulls.'),
- hint=None,
obj=field,
id='fields.E150',
),
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py
index 9734e82631..6a61248eb6 100644
--- a/tests/invalid_models_tests/test_relative_fields.py
+++ b/tests/invalid_models_tests/test_relative_fields.py
@@ -122,9 +122,8 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check()
expected = [
Error(
- ("Field defines a relation with model 'Rel1', "
- "which is either not installed, or is abstract."),
- hint=None,
+ "Field defines a relation with model 'Rel1', "
+ "which is either not installed, or is abstract.",
obj=field,
id='fields.E300',
),
@@ -154,9 +153,8 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check(from_model=Model)
expected = [
Error(
- ("Field defines a relation with model 'Rel2', "
- "which is either not installed, or is abstract."),
- hint=None,
+ "Field defines a relation with model 'Rel2', "
+ "which is either not installed, or is abstract.",
obj=field,
id='fields.E300',
),
@@ -191,7 +189,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
DjangoWarning(
'null has no effect on ManyToManyField.',
- hint=None,
obj=field,
id='fields.W340',
)
@@ -199,7 +196,6 @@ class RelativeFieldTests(SimpleTestCase):
expected.append(
DjangoWarning(
'ManyToManyField does not support validators.',
- hint=None,
obj=field,
id='fields.W341',
)
@@ -213,8 +209,7 @@ class RelativeFieldTests(SimpleTestCase):
pass
class Group(models.Model):
- field = models.ManyToManyField('Person',
- through="AmbiguousRelationship", related_name='tertiary')
+ field = models.ManyToManyField('Person', through="AmbiguousRelationship", related_name='tertiary')
class AmbiguousRelationship(models.Model):
# Too much foreign keys to Person.
@@ -226,14 +221,15 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check(from_model=Group)
expected = [
Error(
- ("The model is used as an intermediate model by "
- "'invalid_models_tests.Group.field', but it has more than one "
- "foreign key to 'Person', which is ambiguous. You must specify "
- "which foreign key Django should use via the through_fields "
- "keyword argument."),
- hint=('If you want to create a recursive relationship, use '
- 'ForeignKey("self", symmetrical=False, '
- 'through="AmbiguousRelationship").'),
+ "The model is used as an intermediate model by "
+ "'invalid_models_tests.Group.field', but it has more than one "
+ "foreign key to 'Person', which is ambiguous. You must specify "
+ "which foreign key Django should use via the through_fields "
+ "keyword argument.",
+ hint=(
+ 'If you want to create a recursive relationship, use '
+ 'ForeignKey("self", symmetrical=False, through="AmbiguousRelationship").'
+ ),
obj=field,
id='fields.E335',
),
@@ -248,8 +244,7 @@ class RelativeFieldTests(SimpleTestCase):
pass
class Group(models.Model):
- members = models.ManyToManyField('Person',
- through="InvalidRelationship")
+ members = models.ManyToManyField('Person', through="InvalidRelationship")
class InvalidRelationship(models.Model):
person = models.ForeignKey(Person, models.CASCADE)
@@ -260,10 +255,9 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check(from_model=Group)
expected = [
Error(
- ("The model is used as an intermediate model by "
- "'invalid_models_tests.Group.members', but it does not "
- "have a foreign key to 'Group' or 'Person'."),
- hint=None,
+ "The model is used as an intermediate model by "
+ "'invalid_models_tests.Group.members', but it does not "
+ "have a foreign key to 'Group' or 'Person'.",
obj=InvalidRelationship,
id='fields.E336',
),
@@ -275,8 +269,7 @@ class RelativeFieldTests(SimpleTestCase):
pass
class Group(models.Model):
- members = models.ManyToManyField('Person',
- through="InvalidRelationship")
+ members = models.ManyToManyField('Person', through="InvalidRelationship")
class InvalidRelationship(models.Model):
group = models.ForeignKey(Group, models.CASCADE)
@@ -286,10 +279,9 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check(from_model=Group)
expected = [
Error(
- ("The model is used as an intermediate model by "
- "'invalid_models_tests.Group.members', but it does not have "
- "a foreign key to 'Group' or 'Person'."),
- hint=None,
+ "The model is used as an intermediate model by "
+ "'invalid_models_tests.Group.members', but it does not have "
+ "a foreign key to 'Group' or 'Person'.",
obj=InvalidRelationship,
id='fields.E336',
),
@@ -301,16 +293,14 @@ class RelativeFieldTests(SimpleTestCase):
pass
class Group(models.Model):
- members = models.ManyToManyField('Person',
- through="MissingM2MModel")
+ members = models.ManyToManyField('Person', through="MissingM2MModel")
field = Group._meta.get_field('members')
errors = field.check(from_model=Group)
expected = [
Error(
- ("Field specifies a many-to-many relation through model "
- "'MissingM2MModel', which has not been installed."),
- hint=None,
+ "Field specifies a many-to-many relation through model "
+ "'MissingM2MModel', which has not been installed.",
obj=field,
id='fields.E331',
),
@@ -350,7 +340,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
'Many-to-many fields with intermediate tables must not be symmetrical.',
- hint=None,
obj=field,
id='fields.E332',
),
@@ -359,8 +348,7 @@ class RelativeFieldTests(SimpleTestCase):
def test_too_many_foreign_keys_in_self_referential_model(self):
class Person(models.Model):
- friends = models.ManyToManyField('self',
- through="InvalidRelationship", symmetrical=False)
+ friends = models.ManyToManyField('self', through="InvalidRelationship", symmetrical=False)
class InvalidRelationship(models.Model):
first = models.ForeignKey(Person, models.CASCADE, related_name="rel_from_set_2")
@@ -371,11 +359,11 @@ class RelativeFieldTests(SimpleTestCase):
errors = field.check(from_model=Person)
expected = [
Error(
- ("The model is used as an intermediate model by "
- "'invalid_models_tests.Person.friends', but it has more than two "
- "foreign keys to 'Person', which is ambiguous. You must specify "
- "which two foreign keys Django should use via the through_fields "
- "keyword argument."),
+ "The model is used as an intermediate model by "
+ "'invalid_models_tests.Person.friends', but it has more than two "
+ "foreign keys to 'Person', which is ambiguous. You must specify "
+ "which two foreign keys Django should use via the through_fields "
+ "keyword argument.",
hint='Use through_fields to specify which two foreign keys Django should use.',
obj=InvalidRelationship,
id='fields.E333',
@@ -386,8 +374,7 @@ class RelativeFieldTests(SimpleTestCase):
def test_symmetric_self_reference_with_intermediate_table(self):
class Person(models.Model):
# Explicit symmetrical=True.
- friends = models.ManyToManyField('self',
- through="Relationship", symmetrical=True)
+ friends = models.ManyToManyField('self', through="Relationship", symmetrical=True)
class Relationship(models.Model):
first = models.ForeignKey(Person, models.CASCADE, related_name="rel_from_set")
@@ -398,7 +385,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
'Many-to-many fields with intermediate tables must not be symmetrical.',
- hint=None,
obj=field,
id='fields.E332',
),
@@ -412,10 +398,12 @@ class RelativeFieldTests(SimpleTestCase):
"""
class Person(models.Model):
# Explicit symmetrical=True.
- friends = models.ManyToManyField('self',
+ friends = models.ManyToManyField(
+ 'self',
symmetrical=True,
through="Relationship",
- through_fields=('first', 'second'))
+ through_fields=('first', 'second'),
+ )
class Relationship(models.Model):
first = models.ForeignKey(Person, models.CASCADE, related_name="rel_from_set")
@@ -427,7 +415,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
'Many-to-many fields with intermediate tables must not be symmetrical.',
- hint=None,
obj=field,
id='fields.E332',
),
@@ -492,7 +479,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
'ManyToManyFields cannot be unique.',
- hint=None,
obj=field,
id='fields.E330',
),
@@ -511,7 +497,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
"'Target.bad' must set unique=True because it is referenced by a foreign key.",
- hint=None,
obj=field,
id='fields.E311',
),
@@ -530,7 +515,6 @@ class RelativeFieldTests(SimpleTestCase):
expected = [
Error(
"'Target.bad' must set unique=True because it is referenced by a foreign key.",
- hint=None,
obj=field,
id='fields.E311',
),
@@ -547,10 +531,12 @@ class RelativeFieldTests(SimpleTestCase):
person_country_id = models.IntegerField()
person_city_id = models.IntegerField()
- person = models.ForeignObject(Person,
+ person = models.ForeignObject(
+ Person,
on_delete=models.CASCADE,
from_fields=['person_country_id', 'person_city_id'],
- to_fields=['country_id', 'city_id'])
+ to_fields=['country_id', 'city_id'],
+ )
field = MMembership._meta.get_field('person')
errors = field.check()
@@ -630,17 +616,21 @@ class RelativeFieldTests(SimpleTestCase):
swappable = 'TEST_SWAPPABLE_MODEL'
class Model(models.Model):
- explicit_fk = models.ForeignKey(SwappableModel,
+ explicit_fk = models.ForeignKey(
+ SwappableModel,
models.CASCADE,
- related_name='explicit_fk')
- implicit_fk = models.ForeignKey('invalid_models_tests.SwappableModel',
+ related_name='explicit_fk',
+ )
+ implicit_fk = models.ForeignKey(
+ 'invalid_models_tests.SwappableModel',
models.CASCADE,
- related_name='implicit_fk')
- explicit_m2m = models.ManyToManyField(SwappableModel,
- related_name='explicit_m2m')
+ related_name='implicit_fk',
+ )
+ explicit_m2m = models.ManyToManyField(SwappableModel, related_name='explicit_m2m')
implicit_m2m = models.ManyToManyField(
'invalid_models_tests.SwappableModel',
- related_name='implicit_m2m')
+ related_name='implicit_m2m',
+ )
explicit_fk = Model._meta.get_field('explicit_fk')
self.assertEqual(explicit_fk.check(), [])
@@ -664,17 +654,21 @@ class RelativeFieldTests(SimpleTestCase):
swappable = 'TEST_SWAPPED_MODEL'
class Model(models.Model):
- explicit_fk = models.ForeignKey(SwappedModel,
+ explicit_fk = models.ForeignKey(
+ SwappedModel,
models.CASCADE,
- related_name='explicit_fk')
- implicit_fk = models.ForeignKey('invalid_models_tests.SwappedModel',
+ related_name='explicit_fk',
+ )
+ implicit_fk = models.ForeignKey(
+ 'invalid_models_tests.SwappedModel',
models.CASCADE,
- related_name='implicit_fk')
- explicit_m2m = models.ManyToManyField(SwappedModel,
- related_name='explicit_m2m')
+ related_name='implicit_fk',
+ )
+ explicit_m2m = models.ManyToManyField(SwappedModel, related_name='explicit_m2m')
implicit_m2m = models.ManyToManyField(
'invalid_models_tests.SwappedModel',
- related_name='implicit_m2m')
+ related_name='implicit_m2m',
+ )
fields = [
Model._meta.get_field('explicit_fk'),
@@ -838,15 +832,19 @@ class AccessorClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.foreign' clashes with reverse accessor for 'Model.m2m'.",
- hint=("Add or change a related_name argument to the definition "
- "for 'Model.foreign' or 'Model.m2m'."),
+ hint=(
+ "Add or change a related_name argument to the definition "
+ "for 'Model.foreign' or 'Model.m2m'."
+ ),
obj=Model._meta.get_field('foreign'),
id='fields.E304',
),
Error(
"Reverse accessor for 'Model.m2m' clashes with reverse accessor for 'Model.foreign'.",
- hint=("Add or change a related_name argument to the definition "
- "for 'Model.m2m' or 'Model.foreign'."),
+ hint=(
+ "Add or change a related_name argument to the definition "
+ "for 'Model.m2m' or 'Model.foreign'."
+ ),
obj=Model._meta.get_field('m2m'),
id='fields.E304',
),
@@ -873,9 +871,10 @@ class AccessorClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.children' clashes with field name 'Child.m2m_clash'.",
- hint=("Rename field 'Child.m2m_clash', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.children'."),
+ hint=(
+ "Rename field 'Child.m2m_clash', or add/change a related_name "
+ "argument to the definition for field 'Model.children'."
+ ),
obj=Model._meta.get_field('children'),
id='fields.E302',
)
@@ -930,9 +929,10 @@ class ReverseQueryNameClashTests(SimpleTestCase):
expected = [
Error(
"Reverse query name for 'Model.rel' clashes with field name 'Target.model'.",
- hint=("Rename field 'Target.model', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.rel'."),
+ hint=(
+ "Rename field 'Target.model', or add/change a related_name "
+ "argument to the definition for field 'Model.rel'."
+ ),
obj=Model._meta.get_field('rel'),
id='fields.E303',
),
@@ -987,17 +987,19 @@ class ExplicitRelatedNameClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.rel' clashes with field name 'Target.clash'.",
- hint=("Rename field 'Target.clash', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.rel'."),
+ hint=(
+ "Rename field 'Target.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.rel'."
+ ),
obj=Model._meta.get_field('rel'),
id='fields.E302',
),
Error(
"Reverse query name for 'Model.rel' clashes with field name 'Target.clash'.",
- hint=("Rename field 'Target.clash', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.rel'."),
+ hint=(
+ "Rename field 'Target.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.rel'."
+ ),
obj=Model._meta.get_field('rel'),
id='fields.E303',
),
@@ -1085,8 +1087,10 @@ class ExplicitRelatedQueryNameClashTests(SimpleTestCase):
expected = [
Error(
"Reverse query name for 'Model.rel' clashes with field name 'Target.clash'.",
- hint=("Rename field 'Target.clash', or add/change a related_name "
- "argument to the definition for field 'Model.rel'."),
+ hint=(
+ "Rename field 'Target.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.rel'."
+ ),
obj=Model._meta.get_field('rel'),
id='fields.E303',
),
@@ -1106,15 +1110,19 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.first_m2m' clashes with reverse accessor for 'Model.second_m2m'.",
- hint=("Add or change a related_name argument to the definition "
- "for 'Model.first_m2m' or 'Model.second_m2m'."),
+ hint=(
+ "Add or change a related_name argument to the definition "
+ "for 'Model.first_m2m' or 'Model.second_m2m'."
+ ),
obj=Model._meta.get_field('first_m2m'),
id='fields.E304',
),
Error(
"Reverse accessor for 'Model.second_m2m' clashes with reverse accessor for 'Model.first_m2m'.",
- hint=("Add or change a related_name argument to the definition "
- "for 'Model.second_m2m' or 'Model.first_m2m'."),
+ hint=(
+ "Add or change a related_name argument to the definition "
+ "for 'Model.second_m2m' or 'Model.first_m2m'."
+ ),
obj=Model._meta.get_field('second_m2m'),
id='fields.E304',
),
@@ -1129,9 +1137,10 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
- hint=("Rename field 'Model.model_set', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.model_set'."),
+ hint=(
+ "Rename field 'Model.model_set', or add/change a related_name "
+ "argument to the definition for field 'Model.model_set'."
+ ),
obj=Model._meta.get_field('model_set'),
id='fields.E302',
),
@@ -1146,8 +1155,10 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
expected = [
Error(
"Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
- hint=("Rename field 'Model.model', or add/change a related_name "
- "argument to the definition for field 'Model.model'."),
+ hint=(
+ "Rename field 'Model.model', or add/change a related_name "
+ "argument to the definition for field 'Model.model'."
+ ),
obj=Model._meta.get_field('model'),
id='fields.E303',
),
@@ -1157,22 +1168,25 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
def test_clash_under_explicit_related_name(self):
class Model(models.Model):
clash = models.IntegerField()
- m2m = models.ManyToManyField("self",
- symmetrical=False, related_name='clash')
+ m2m = models.ManyToManyField("self", symmetrical=False, related_name='clash')
errors = Model.check()
expected = [
Error(
"Reverse accessor for 'Model.m2m' clashes with field name 'Model.clash'.",
- hint=("Rename field 'Model.clash', or add/change a related_name "
- "argument to the definition for field 'Model.m2m'."),
+ hint=(
+ "Rename field 'Model.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.m2m'."
+ ),
obj=Model._meta.get_field('m2m'),
id='fields.E302',
),
Error(
"Reverse query name for 'Model.m2m' clashes with field name 'Model.clash'.",
- hint=("Rename field 'Model.clash', or add/change a related_name "
- "argument to the definition for field 'Model.m2m'."),
+ hint=(
+ "Rename field 'Model.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.m2m'."
+ ),
obj=Model._meta.get_field('m2m'),
id='fields.E303',
),
@@ -1181,10 +1195,8 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
def test_valid_model(self):
class Model(models.Model):
- first = models.ManyToManyField("self",
- symmetrical=False, related_name='first_accessor')
- second = models.ManyToManyField("self",
- symmetrical=False, related_name='second_accessor')
+ first = models.ManyToManyField("self", symmetrical=False, related_name='first_accessor')
+ second = models.ManyToManyField("self", symmetrical=False, related_name='second_accessor')
errors = Model.check()
self.assertEqual(errors, [])
@@ -1201,9 +1213,11 @@ class SelfReferentialFKClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
- hint=("Rename field 'Model.model_set', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.model_set'."),
+ hint=(
+ "Rename field 'Model.model_set', or add/change "
+ "a related_name argument to the definition "
+ "for field 'Model.model_set'."
+ ),
obj=Model._meta.get_field('model_set'),
id='fields.E302',
),
@@ -1218,9 +1232,10 @@ class SelfReferentialFKClashTests(SimpleTestCase):
expected = [
Error(
"Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
- hint=("Rename field 'Model.model', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.model'."),
+ hint=(
+ "Rename field 'Model.model', or add/change a related_name "
+ "argument to the definition for field 'Model.model'."
+ ),
obj=Model._meta.get_field('model'),
id='fields.E303',
),
@@ -1236,17 +1251,19 @@ class SelfReferentialFKClashTests(SimpleTestCase):
expected = [
Error(
"Reverse accessor for 'Model.foreign' clashes with field name 'Model.clash'.",
- hint=("Rename field 'Model.clash', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.foreign'."),
+ hint=(
+ "Rename field 'Model.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.foreign'."
+ ),
obj=Model._meta.get_field('foreign'),
id='fields.E302',
),
Error(
"Reverse query name for 'Model.foreign' clashes with field name 'Model.clash'.",
- hint=("Rename field 'Model.clash', or add/change "
- "a related_name argument to the definition "
- "for field 'Model.foreign'."),
+ hint=(
+ "Rename field 'Model.clash', or add/change a related_name "
+ "argument to the definition for field 'Model.foreign'."
+ ),
obj=Model._meta.get_field('foreign'),
id='fields.E303',
),
@@ -1402,15 +1419,17 @@ class M2mThroughFieldsTests(SimpleTestCase):
errors = field.check(from_model=Event)
expected = [
Error(
- ("'Invitation.invitee' is not a foreign key to 'Event'."),
+ "'Invitation.invitee' is not a foreign key to 'Event'.",
hint="Did you mean one of the following foreign keys to 'Event': event?",
obj=field,
- id='fields.E339'),
+ id='fields.E339',
+ ),
Error(
- ("'Invitation.event' is not a foreign key to 'Fan'."),
+ "'Invitation.event' is not a foreign key to 'Fan'.",
hint="Did you mean one of the following foreign keys to 'Fan': invitee, inviter?",
obj=field,
- id='fields.E339'),
+ id='fields.E339',
+ ),
]
self.assertEqual(expected, errors)
@@ -1441,12 +1460,14 @@ class M2mThroughFieldsTests(SimpleTestCase):
"The intermediary model 'invalid_models_tests.Invitation' has no field 'invalid_field_1'.",
hint="Did you mean one of the following foreign keys to 'Event': event?",
obj=field,
- id='fields.E338'),
+ id='fields.E338',
+ ),
Error(
"The intermediary model 'invalid_models_tests.Invitation' has no field 'invalid_field_2'.",
hint="Did you mean one of the following foreign keys to 'Fan': invitee, inviter?",
obj=field,
- id='fields.E338'),
+ id='fields.E338',
+ ),
]
self.assertEqual(expected, errors)
@@ -1473,8 +1494,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
"Field specifies 'through_fields' but does not provide the names "
"of the two link fields that should be used for the relation "
"through model 'invalid_models_tests.Invitation'.",
- hint=("Make sure you specify 'through_fields' as "
- "through_fields=('field1', 'field2')"),
+ hint="Make sure you specify 'through_fields' as through_fields=('field1', 'field2')",
obj=field,
id='fields.E337')]
self.assertEqual(expected, errors)