diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/invalid_models_tests/test_models.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py index 5780704eae..2a39e250bd 100644 --- a/tests/invalid_models_tests/test_models.py +++ b/tests/invalid_models_tests/test_models.py @@ -166,6 +166,54 @@ class UniqueTogetherTests(SimpleTestCase): ], ) + def test_pointing_to_foreign_object(self): + class Reference(models.Model): + reference_id = models.IntegerField(unique=True) + + class ReferenceTab(models.Model): + reference_id = models.IntegerField() + reference = models.ForeignObject( + Reference, + from_fields=["reference_id"], + to_fields=["reference_id"], + on_delete=models.CASCADE, + ) + + class Meta: + unique_together = [["reference"]] + + self.assertEqual(ReferenceTab.check(), []) + + def test_pointing_to_foreign_object_multi_column(self): + class Reference(models.Model): + reference_id = models.IntegerField(unique=True) + code = models.CharField(max_length=1) + + class ReferenceTabMultiple(models.Model): + reference_id = models.IntegerField() + code = models.CharField(max_length=1) + reference = models.ForeignObject( + Reference, + from_fields=["reference_id", "code"], + to_fields=["reference_id", "code"], + on_delete=models.CASCADE, + ) + + class Meta: + unique_together = [["reference"]] + + self.assertEqual( + ReferenceTabMultiple.check(), + [ + Error( + "'unique_together' refers to a ForeignObject 'reference' with " + "multiple 'from_fields', which is not supported for that option.", + obj=ReferenceTabMultiple, + id="models.E049", + ), + ], + ) + @isolate_apps("invalid_models_tests") class IndexesTests(TestCase): |
