user-groups: Add delete API endpoint.

Significantly modified by tabbott to fix some bugs.
This commit is contained in:
Umair Khan
2017-11-02 12:15:14 +05:00
committed by Tim Abbott
parent eeaf0f1742
commit a1b894a786
3 changed files with 35 additions and 2 deletions

View File

@@ -13,7 +13,8 @@ from zerver.lib.user_groups import (
get_user_groups,
user_groups_in_realm,
)
from zerver.models import UserProfile, UserGroup, get_realm, Realm
from zerver.models import UserProfile, UserGroup, get_realm, Realm, \
UserGroupMembership
class UserGroupTestCase(ZulipTestCase):
def create_user_group_for_test(self, group_name,
@@ -123,3 +124,27 @@ class UserGroupAPITestCase(ZulipTestCase):
params = {'name': 'help'}
result = self.client_patch('/json/user_groups/1111', info=params)
self.assert_json_error(result, "Invalid user group")
def test_user_group_delete(self):
# type: () -> None
hamlet = self.example_user('hamlet')
self.login(self.example_email("hamlet"))
params = {
'name': 'support',
'members': ujson.dumps([hamlet.id]),
'description': 'Support team',
}
self.client_post('/json/user_groups/create', info=params)
user_group = UserGroup.objects.first()
# Test success
self.assertEqual(UserGroup.objects.count(), 1)
self.assertEqual(UserGroupMembership.objects.count(), 1)
result = self.client_delete('/json/user_groups/{}'.format(user_group.id))
self.assert_json_success(result)
self.assertEqual(UserGroup.objects.count(), 0)
self.assertEqual(UserGroupMembership.objects.count(), 0)
# Test when invalid user group is supplied
result = self.client_delete('/json/user_groups/1111')
self.assert_json_error(result, "Invalid user group")

View File

@@ -45,3 +45,10 @@ def edit_user_group(request, user_profile,
result['description'] = _("Description successfully updated.")
return json_success(result)
@has_request_variables
def delete_user_group(request, user_profile, user_group_id=REQ(validator=check_int)):
# type: (HttpRequest, UserProfile, int) -> HttpResponse
user_group = access_user_group_by_id(user_group_id, user_profile.realm)
user_group.delete()
return json_success()

View File

@@ -219,7 +219,8 @@ v1_api_and_json_patterns = [
url(r'^user_groups/create$', rest_dispatch,
{'POST': 'zerver.views.user_groups.add_user_group'}),
url(r'^user_groups/(?P<user_group_id>\d+)$', rest_dispatch,
{'PATCH': 'zerver.views.user_groups.edit_user_group'}),
{'PATCH': 'zerver.views.user_groups.edit_user_group',
'DELETE': 'zerver.views.user_groups.delete_user_group'}),
# users/me -> zerver.views.user_settings
url(r'^users/me/api_key/regenerate$', rest_dispatch,