summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests/test_relative_fields.py
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/test_relative_fields.py
parent36f1f5cfb008c465f372389080cdd92671a6cab7 (diff)
Removed unneeded hint=None/obj=None in system check messages.
Diffstat (limited to 'tests/invalid_models_tests/test_relative_fields.py')
-rw-r--r--tests/invalid_models_tests/test_relative_fields.py270
1 files changed, 145 insertions, 125 deletions
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)