def create_groups_with_permissions(codenames): g1, _ = Group.objects.get_or_create(name="Test Group 1") g2, _ = Group.objects.get_or_create(name="Test Group 2") gp = GroupPermissions() with gp.groups(g1, g2): gp.add_permissions(Group, *codenames) return (g1, g2)
def test_add_perms(): g1, _ = Group.objects.get_or_create(name="Test Group 1") g2, _ = Group.objects.get_or_create(name="Test Group 2") any_model = Group # for example content_type = ContentType.objects.get_for_model(any_model) codenames = ['a_do_stuff', 'b_do_more_stuff'] expected_permissions = [] for name in codenames: perm, _ = Permission.objects.get_or_create(name=name, codename=name, content_type=content_type) expected_permissions.append(perm) gp = GroupPermissions() with gp.groups(g1, g2): gp.add_permissions(any_model, *codenames) assert list(g1.permissions.all()) == expected_permissions assert list(g2.permissions.all()) == expected_permissions