diff options
| author | Tim Graham <timograham@gmail.com> | 2016-02-12 11:36:46 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-02-12 13:01:25 -0500 |
| commit | 004ba0f99eb25c3f32aa3a41707534e955d1878e (patch) | |
| tree | 74273e902b824f7288eac57ba961cbd4b572223c /tests/invalid_models_tests | |
| parent | 36f1f5cfb008c465f372389080cdd92671a6cab7 (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.py | 2 | ||||
| -rw-r--r-- | tests/invalid_models_tests/test_models.py | 31 | ||||
| -rw-r--r-- | tests/invalid_models_tests/test_ordinary_fields.py | 21 | ||||
| -rw-r--r-- | tests/invalid_models_tests/test_relative_fields.py | 270 |
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) |
