summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOguzhan Akan <37854131+oguzhanakan0@users.noreply.github.com>2023-09-08 09:47:11 +0300
committerGitHub <noreply@github.com>2023-09-08 08:47:11 +0200
commite41f9f94505f690525f16af8bd10e62e22bc0207 (patch)
tree950f5354f0ce4fb176e6317d27ed18821230ce69 /tests
parent1ab2cf7994a6f1116a96fbaedd7cadbd4b754179 (diff)
Fixed #34816 -- Fixed GenericForeignKey crash when checking cache for primary keys with different types.
Diffstat (limited to 'tests')
-rw-r--r--tests/generic_relations_regress/tests.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/generic_relations_regress/tests.py b/tests/generic_relations_regress/tests.py
index b7ecb499eb..a3d54be1da 100644
--- a/tests/generic_relations_regress/tests.py
+++ b/tests/generic_relations_regress/tests.py
@@ -1,3 +1,4 @@
+from django.contrib.contenttypes.models import ContentType
from django.db.models import ProtectedError, Q, Sum
from django.forms.models import modelform_factory
from django.test import TestCase, skipIfDBFeature
@@ -332,3 +333,14 @@ class GenericRelationTests(TestCase):
self.assertSequenceEqual(qs, [link2])
qs = Link.objects.exclude(places__name="Test Place 1")
self.assertSequenceEqual(qs, [link2])
+
+ def test_check_cached_value_pk_different_type(self):
+ """Primary key is not checked if the content type doesn't match."""
+ board = Board.objects.create(name="some test")
+ oddrel = OddRelation1.objects.create(name="clink")
+ charlink = CharLink.objects.create(content_object=oddrel)
+ charlink = CharLink.objects.get(pk=charlink.pk)
+ self.assertEqual(charlink.content_object, oddrel)
+ charlink.object_id = board.pk
+ charlink.content_type_id = ContentType.objects.get_for_model(Board).id
+ self.assertEqual(charlink.content_object, board)