diff options
author | Bernd Wechner <bernd.wechner@gmail.com> | 2021-09-22 15:53:10 +1000 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-10-06 12:33:15 +0200 |
commit | 2116238d5f2ce19571becb5620ef16ce9048db9f (patch) | |
tree | 944939c00a338cf4b3ff807119a032859412aa1c /tests/invalid_models_tests | |
parent | 402ae37873974afa5093e6d6149175a118979cd9 (diff) | |
download | django-2116238d5f2ce19571becb5620ef16ce9048db9f.tar.gz |
Fixed #33131 -- Improved error messages for clashing reverse accessor names.
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r-- | tests/invalid_models_tests/test_relative_fields.py | 109 |
1 files changed, 57 insertions, 52 deletions
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py index 6e885f1705..438d1b2a45 100644 --- a/tests/invalid_models_tests/test_relative_fields.py +++ b/tests/invalid_models_tests/test_relative_fields.py @@ -862,8 +862,8 @@ class AccessorClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.rel' " - "clashes with field name " + "Reverse accessor 'Target.model_set' for " + "'invalid_models_tests.Model.rel' clashes with field name " "'invalid_models_tests.Target.model_set'.", hint=( "Rename field 'invalid_models_tests.Target.model_set', or " @@ -885,9 +885,9 @@ class AccessorClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.foreign' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.m2m'.", + "Reverse accessor 'Target.model_set' for " + "'invalid_models_tests.Model.foreign' clashes with reverse " + "accessor for 'invalid_models_tests.Model.m2m'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.foreign' or " @@ -897,9 +897,9 @@ class AccessorClashTests(SimpleTestCase): id='fields.E304', ), Error( - "Reverse accessor for 'invalid_models_tests.Model.m2m' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.foreign'.", + "Reverse accessor 'Target.model_set' for " + "'invalid_models_tests.Model.m2m' clashes with reverse " + "accessor for 'invalid_models_tests.Model.foreign'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.m2m' or " @@ -927,9 +927,9 @@ class AccessorClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.children' " - "clashes with field name " - "'invalid_models_tests.Child.m2m_clash'.", + "Reverse accessor 'Child.m2m_clash' for " + "'invalid_models_tests.Model.children' clashes with field " + "name 'invalid_models_tests.Child.m2m_clash'.", hint=( "Rename field 'invalid_models_tests.Child.m2m_clash', or " "add/change a related_name argument to the definition for " @@ -1085,8 +1085,9 @@ class ExplicitRelatedNameClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.rel' " - "clashes with field name 'invalid_models_tests.Target.clash'.", + "Reverse accessor 'Target.clash' for " + "'invalid_models_tests.Model.rel' clashes with field name " + "'invalid_models_tests.Target.clash'.", hint=( "Rename field 'invalid_models_tests.Target.clash', or " "add/change a related_name argument to the definition for " @@ -1218,9 +1219,9 @@ class SelfReferentialM2MClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.first_m2m' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.second_m2m'.", + "Reverse accessor 'Model.model_set' for " + "'invalid_models_tests.Model.first_m2m' clashes with reverse " + "accessor for 'invalid_models_tests.Model.second_m2m'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.first_m2m' or " @@ -1230,9 +1231,9 @@ class SelfReferentialM2MClashTests(SimpleTestCase): id='fields.E304', ), Error( - "Reverse accessor for 'invalid_models_tests.Model.second_m2m' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.first_m2m'.", + "Reverse accessor 'Model.model_set' for " + "'invalid_models_tests.Model.second_m2m' clashes with reverse " + "accessor for 'invalid_models_tests.Model.first_m2m'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.second_m2m' or " @@ -1249,9 +1250,9 @@ class SelfReferentialM2MClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.model_set' " - "clashes with field name " - "'invalid_models_tests.Model.model_set'.", + "Reverse accessor 'Model.model_set' for " + "'invalid_models_tests.Model.model_set' clashes with field " + "name 'invalid_models_tests.Model.model_set'.", hint=( "Rename field 'invalid_models_tests.Model.model_set', or " "add/change a related_name argument to the definition for " @@ -1287,8 +1288,9 @@ class SelfReferentialM2MClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.m2m' " - "clashes with field name 'invalid_models_tests.Model.clash'.", + "Reverse accessor 'Model.clash' for " + "'invalid_models_tests.Model.m2m' clashes with field name " + "'invalid_models_tests.Model.clash'.", hint=( "Rename field 'invalid_models_tests.Model.clash', or " "add/change a related_name argument to the definition for " @@ -1327,9 +1329,9 @@ class SelfReferentialFKClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.model_set' " - "clashes with field name " - "'invalid_models_tests.Model.model_set'.", + "Reverse accessor 'Model.model_set' for " + "'invalid_models_tests.Model.model_set' clashes with field " + "name 'invalid_models_tests.Model.model_set'.", hint=( "Rename field 'invalid_models_tests.Model.model_set', or " "add/change a related_name argument to the definition for " @@ -1365,8 +1367,9 @@ class SelfReferentialFKClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.foreign' " - "clashes with field name 'invalid_models_tests.Model.clash'.", + "Reverse accessor 'Model.clash' for " + "'invalid_models_tests.Model.foreign' clashes with field name " + "'invalid_models_tests.Model.clash'.", hint=( "Rename field 'invalid_models_tests.Model.clash', or " "add/change a related_name argument to the definition for " @@ -1413,8 +1416,9 @@ class ComplexClashTests(SimpleTestCase): self.assertEqual(Model.check(), [ Error( - "Reverse accessor for 'invalid_models_tests.Model.foreign_1' " - "clashes with field name 'invalid_models_tests.Target.id'.", + "Reverse accessor 'Target.id' for " + "'invalid_models_tests.Model.foreign_1' clashes with field " + "name 'invalid_models_tests.Target.id'.", hint=( "Rename field 'invalid_models_tests.Target.id', or " "add/change a related_name argument to the definition for " @@ -1435,9 +1439,9 @@ class ComplexClashTests(SimpleTestCase): id='fields.E303', ), Error( - "Reverse accessor for 'invalid_models_tests.Model.foreign_1' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.m2m_1'.", + "Reverse accessor 'Target.id' for " + "'invalid_models_tests.Model.foreign_1' clashes with reverse " + "accessor for 'invalid_models_tests.Model.m2m_1'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.foreign_1' or " @@ -1460,9 +1464,9 @@ class ComplexClashTests(SimpleTestCase): ), Error( - "Reverse accessor for 'invalid_models_tests.Model.foreign_2' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.m2m_2'.", + "Reverse accessor 'Target.src_safe' for " + "'invalid_models_tests.Model.foreign_2' clashes with reverse " + "accessor for 'invalid_models_tests.Model.m2m_2'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.foreign_2' or " @@ -1485,8 +1489,9 @@ class ComplexClashTests(SimpleTestCase): ), Error( - "Reverse accessor for 'invalid_models_tests.Model.m2m_1' " - "clashes with field name 'invalid_models_tests.Target.id'.", + "Reverse accessor 'Target.id' for " + "'invalid_models_tests.Model.m2m_1' clashes with field name " + "'invalid_models_tests.Target.id'.", hint=( "Rename field 'invalid_models_tests.Target.id', or " "add/change a related_name argument to the definition for " @@ -1507,9 +1512,9 @@ class ComplexClashTests(SimpleTestCase): id='fields.E303', ), Error( - "Reverse accessor for 'invalid_models_tests.Model.m2m_1' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.foreign_1'.", + "Reverse accessor 'Target.id' for " + "'invalid_models_tests.Model.m2m_1' clashes with reverse " + "accessor for 'invalid_models_tests.Model.foreign_1'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.m2m_1' or " @@ -1531,9 +1536,9 @@ class ComplexClashTests(SimpleTestCase): id='fields.E305', ), Error( - "Reverse accessor for 'invalid_models_tests.Model.m2m_2' " - "clashes with reverse accessor for " - "'invalid_models_tests.Model.foreign_2'.", + "Reverse accessor 'Target.src_safe' for " + "'invalid_models_tests.Model.m2m_2' clashes with reverse " + "accessor for 'invalid_models_tests.Model.foreign_2'.", hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Model.m2m_2' or " @@ -1564,16 +1569,16 @@ class ComplexClashTests(SimpleTestCase): other_parent = models.OneToOneField(Parent, models.CASCADE) errors = [ - ('fields.E304', 'accessor', 'parent_ptr', 'other_parent'), - ('fields.E305', 'query name', 'parent_ptr', 'other_parent'), - ('fields.E304', 'accessor', 'other_parent', 'parent_ptr'), - ('fields.E305', 'query name', 'other_parent', 'parent_ptr'), + ('fields.E304', 'accessor', " 'Parent.child'", 'parent_ptr', 'other_parent'), + ('fields.E305', 'query name', '', 'parent_ptr', 'other_parent'), + ('fields.E304', 'accessor', " 'Parent.child'", 'other_parent', 'parent_ptr'), + ('fields.E305', 'query name', '', 'other_parent', 'parent_ptr'), ] self.assertEqual(Child.check(), [ Error( - "Reverse %s for 'invalid_models_tests.Child.%s' clashes with " + "Reverse %s%s for 'invalid_models_tests.Child.%s' clashes with " "reverse %s for 'invalid_models_tests.Child.%s'." - % (attr, field_name, attr, clash_name), + % (attr, rel_name, field_name, attr, clash_name), hint=( "Add or change a related_name argument to the definition " "for 'invalid_models_tests.Child.%s' or " @@ -1582,7 +1587,7 @@ class ComplexClashTests(SimpleTestCase): obj=Child._meta.get_field(field_name), id=error_id, ) - for error_id, attr, field_name, clash_name in errors + for error_id, attr, rel_name, field_name, clash_name in errors ]) |