summaryrefslogtreecommitdiff
path: root/tests/foreign_object
diff options
context:
space:
mode:
authorDavid Wobrock <david.wobrock@gmail.com>2023-04-18 10:20:32 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-04-18 12:46:27 +0200
commit8b1ff0da4b162e87edebd94e61f2cd153e9e159d (patch)
tree537798f33a0a9458ea1c4728616ba207b3a44dac /tests/foreign_object
parent9bbf97bcdb488bb11aebb5bd405549fbec6852cd (diff)
Refs #16055 -- Deprecated get_joining_columns()/get_reverse_joining_columns() methods.
Diffstat (limited to 'tests/foreign_object')
-rw-r--r--tests/foreign_object/tests.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py
index 3c06f07e06..c9e8da5792 100644
--- a/tests/foreign_object/tests.py
+++ b/tests/foreign_object/tests.py
@@ -8,6 +8,7 @@ from django.db import models
from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
from django.test.utils import isolate_apps
from django.utils import translation
+from django.utils.deprecation import RemovedInDjango60Warning
from .models import (
Article,
@@ -687,3 +688,49 @@ class TestCachedPathInfo(TestCase):
foreign_object_restored = pickle.loads(pickle.dumps(foreign_object))
self.assertIn("path_infos", foreign_object_restored.__dict__)
self.assertIn("reverse_path_infos", foreign_object_restored.__dict__)
+
+
+class GetJoiningDeprecationTests(TestCase):
+ def test_foreign_object_get_joining_columns_warning(self):
+ msg = (
+ "ForeignObject.get_joining_columns() is deprecated. Use "
+ "get_joining_fields() instead."
+ )
+ with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
+ Membership.person.field.get_joining_columns()
+
+ def test_foreign_object_get_reverse_joining_columns_warning(self):
+ msg = (
+ "ForeignObject.get_reverse_joining_columns() is deprecated. Use "
+ "get_reverse_joining_fields() instead."
+ )
+ with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
+ Membership.person.field.get_reverse_joining_columns()
+
+ def test_foreign_object_rel_get_joining_columns_warning(self):
+ msg = (
+ "ForeignObjectRel.get_joining_columns() is deprecated. Use "
+ "get_joining_fields() instead."
+ )
+ with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
+ Membership.person.field.remote_field.get_joining_columns()
+
+ def test_join_get_joining_columns_warning(self):
+ class CustomForeignKey(models.ForeignKey):
+ def __getattribute__(self, attr):
+ if attr == "get_joining_fields":
+ raise AttributeError
+ return super().__getattribute__(attr)
+
+ class CustomParent(models.Model):
+ value = models.CharField(max_length=255)
+
+ class CustomChild(models.Model):
+ links = CustomForeignKey(CustomParent, models.CASCADE)
+
+ msg = (
+ "The usage of get_joining_columns() in Join is deprecated. Implement "
+ "get_joining_fields() instead."
+ )
+ with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
+ CustomChild.objects.filter(links__value="value")