From c2fb5e5b661ce9ff0c1eed901636cd41b2f06dc3 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Wed, 22 Jun 2022 13:17:48 -0300 Subject: [PATCH] fix: Group.used_roles overrides default_used_roles (#4118) --- ietf/group/forms.py | 2 +- ietf/group/tests_info.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ietf/group/forms.py b/ietf/group/forms.py index a98fbd799..a605793b5 100644 --- a/ietf/group/forms.py +++ b/ietf/group/forms.py @@ -79,10 +79,10 @@ class GroupForm(forms.Form): self.used_roles = self.group.used_roles or group_features.default_used_roles else: group_features = GroupFeatures.objects.filter(type_id=self.group_type).first() + self.used_roles = group_features.default_used_roles log.assertion('group_features is not None') if group_features is not None: - self.used_roles = group_features.default_used_roles parent_types = group_features.parent_types.all() need_parent = group_features.need_parent default_parent = group_features.default_parent diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index 73007eeee..041cd65dd 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -16,6 +16,7 @@ from tempfile import NamedTemporaryFile import debug # pyflakes:ignore from django.conf import settings +from django.test import RequestFactory from django.urls import reverse as urlreverse from django.urls import NoReverseMatch from django.utils import timezone @@ -1086,6 +1087,16 @@ class GroupFormTests(TestCase): RoleFactory(name_id=rslug, group=group, person=PersonFactory()) self.do_edit_roles_test(group) + def test_used_roles_overrides_default(self): + """A group's used_roles should override the GroupFeatures default""" + request_factory = RequestFactory() + group = GroupFactory(type_id='wg') + self.assertEqual(GroupForm(request_factory.get('/some/url'), group=group).used_roles, group.features.default_used_roles) + group.used_roles = ['ad', 'chair'] + group.save() + self.assertNotEqual(group.used_roles, group.features.default_used_roles) + self.assertEqual(GroupForm(request_factory.get('/some/url'), group=group).used_roles, group.used_roles) + def test_need_parent(self): """GroupForm should enforce non-null parent when required""" group = GroupFactory()