diff options
author | Tom Wojcik <me@tomwojcik.com> | 2021-07-20 12:44:13 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-07-26 06:41:31 +0200 |
commit | b2f7b53facc7c3432b9d6173276f4baff02e71b7 (patch) | |
tree | b4e2ccb7debace5d57d2bbba4e3884502023600e /tests/m2m_through/tests.py | |
parent | de5a044cf49ba3d856388fe008f1e1a82a69b699 (diff) | |
download | django-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.py | 11 |
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) |