Commit 0b9cdf3a by Matt Drayer Committed by Jonathan Piacenti

mattdrayer/api-delete-group: Added support for removing a Group

parent 272d5cb1
......@@ -292,6 +292,41 @@ class GroupsApiTests(ModuleStoreTestCase):
response = self.do_post(test_uri, data)
self.assertEqual(response.status_code, 404)
def test_group_detail_delete(self):
local_username = self.test_username + str(randint(11, 99))
data = {
'email': self.test_email,
'username': local_username,
'password': self.test_password,
'first_name': 'Joe',
'last_name': 'Smith'
}
response = self.do_post(self.base_users_uri, data)
user_id = response.data['id']
data = {'name': self.test_group_name, 'type': 'test'}
response = self.do_post(self.base_groups_uri, data)
self.assertEqual(response.status_code, 201)
self.assertGreater(response.data['id'], 0)
group_id = response.data['id']
test_uri = '{}/{}/users'.format(self.base_groups_uri, group_id)
data = {'user_id': user_id}
response = self.do_post(test_uri, data)
self.assertEqual(response.status_code, 201)
test_uri = '{}/{}'.format(self.base_groups_uri, group_id)
response = self.do_delete(test_uri)
self.assertEqual(response.status_code, 204)
response = self.do_get(test_uri)
self.assertEqual(response.status_code, 404)
def test_group_detail_delete_invalid_group(self):
test_uri = '{}/23209232'.format(self.base_groups_uri)
response = self.do_delete(test_uri)
self.assertEqual(response.status_code, 204)
def test_group_users_list_post(self):
local_username = self.test_username + str(randint(11, 99))
data = {
......
......@@ -198,6 +198,16 @@ class GroupsDetail(SecureAPIView):
response_data['name'] = existing_group.name
return Response(response_data, status=status.HTTP_200_OK)
def delete(self, request, group_id): # pylint: disable=W0612,W0613
"""
DELETE removes an existing group from the system
"""
try:
existing_group = Group.objects.get(id=group_id).delete()
except ObjectDoesNotExist:
pass
return Response({}, status=status.HTTP_204_NO_CONTENT)
class GroupsUsersList(SecureAPIView):
"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment