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:
committed by
Mariusz Felisiak
parent
9bbf97bcdb
commit
8b1ff0da4b
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user