fix: Group.used_roles overrides default_used_roles (#4118)

This commit is contained in:
Jennifer Richards 2022-06-22 13:17:48 -03:00 committed by GitHub
parent eda494a299
commit c2fb5e5b66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View file

@ -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

View file

@ -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()