summaryrefslogtreecommitdiff
path: root/tests/m2m_through/tests.py
diff options
context:
space:
mode:
authorTom Wojcik <me@tomwojcik.com>2021-07-20 12:44:13 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-07-26 06:41:31 +0200
commitb2f7b53facc7c3432b9d6173276f4baff02e71b7 (patch)
treeb4e2ccb7debace5d57d2bbba4e3884502023600e /tests/m2m_through/tests.py
parentde5a044cf49ba3d856388fe008f1e1a82a69b699 (diff)
downloaddjango-b2f7b53facc7c3432b9d6173276f4baff02e71b7.tar.gz
[3.2.x] Fixed #32947 -- Fixed hash() crash on reverse M2M relation when through_fields is a list.
Regression in c32d8f33d8e988a376e44997b8f3606d821f305e. Backport of 20226fcd461670334646f78a0c4d133e439b12b2 from main
Diffstat (limited to 'tests/m2m_through/tests.py')
-rw-r--r--tests/m2m_through/tests.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/tests/m2m_through/tests.py b/tests/m2m_through/tests.py
index 6262596dd0..36644c3b59 100644
--- a/tests/m2m_through/tests.py
+++ b/tests/m2m_through/tests.py
@@ -6,8 +6,8 @@ from django.test import TestCase
from .models import (
CustomMembership, Employee, Event, Friendship, Group, Ingredient,
- Invitation, Membership, Person, PersonSelfRefM2M, Recipe, RecipeIngredient,
- Relationship, SymmetricalFriendship,
+ Invitation, Membership, Person, PersonChild, PersonSelfRefM2M, Recipe,
+ RecipeIngredient, Relationship, SymmetricalFriendship,
)
@@ -20,6 +20,13 @@ class M2mThroughTests(TestCase):
cls.rock = Group.objects.create(name='Rock')
cls.roll = Group.objects.create(name='Roll')
+ def test_reverse_inherited_m2m_with_through_fields_list_hashable(self):
+ reverse_m2m = Person._meta.get_field('events_invited')
+ self.assertEqual(reverse_m2m.through_fields, ['event', 'invitee'])
+ inherited_reverse_m2m = PersonChild._meta.get_field('events_invited')
+ self.assertEqual(inherited_reverse_m2m.through_fields, ['event', 'invitee'])
+ self.assertEqual(hash(reverse_m2m), hash(inherited_reverse_m2m))
+
def test_retrieve_intermediate_items(self):
Membership.objects.create(person=self.jim, group=self.rock)
Membership.objects.create(person=self.jane, group=self.rock)