1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Refs #16055 -- Deprecated get_joining_columns()/get_reverse_joining_columns() methods.

This commit is contained in:
David Wobrock
2023-04-18 10:20:32 +02:00
committed by Mariusz Felisiak
parent 9bbf97bcdb
commit 8b1ff0da4b
6 changed files with 94 additions and 0 deletions

View File

@@ -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")