Commit 4cf04c91 by Matt Drayer

Merge pull request #30 from edx-solutions/mattdrayer/group_profile_fix

Group Profile fix
parents 3d6e4b46 513cffb2
......@@ -122,7 +122,6 @@ class GroupsDetail(APIView):
response_data['uri'] = _generate_base_uri(request)
return Response(response_data, status=status.HTTP_201_CREATED)
def get(self, request, group_id, format=None):
"""
GET retrieves an existing group from the system
......@@ -140,9 +139,12 @@ class GroupsDetail(APIView):
response_data['resources'].append({'uri': resource_uri})
resource_uri = '{}/groups'.format(base_uri)
response_data['resources'].append({'uri': resource_uri})
try:
group_profile = GroupProfile.objects.get(group_id=group_id)
if len(group_profile.name):
except ObjectDoesNotExist:
group_profile = None
if group_profile:
if group_profile.name:
response_data['name'] = group_profile.name
else:
response_data['name'] = existing_group.name
......@@ -151,7 +153,8 @@ class GroupsDetail(APIView):
data = group_profile.data
if data:
response_data['data'] = json.loads(data)
else:
response_data['name'] = existing_group.name
return Response(response_data, status=status.HTTP_200_OK)
......
......@@ -12,7 +12,7 @@ from django.core.cache import cache
from django.test import TestCase, Client
from django.test.utils import override_settings
from api_manager.models import GroupRelationship
from api_manager.models import GroupRelationship, GroupProfile
from courseware.tests.modulestore_config import TEST_DATA_MIXED_MODULESTORE
from xmodule.modulestore.tests.factories import CourseFactory
......@@ -190,6 +190,21 @@ class GroupsApiTests(TestCase):
self.assertEqual(response.data['uri'], confirm_uri)
self.assertEqual(response.data['name'], '{:04d}: '.format(group_id))
def test_group_detail_get_with_missing_profile(self):
data = {'name': ''}
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']
GroupProfile.objects.get(group_id=group_id).delete()
test_uri = self.base_groups_uri + '/' + str(group_id)
response = self.do_get(test_uri)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data['id'], group_id)
confirm_uri = self.test_server_prefix + test_uri
self.assertEqual(response.data['uri'], confirm_uri)
self.assertEqual(response.data['name'], '{:04d}: '.format(group_id))
def test_group_detail_get_undefined(self):
test_uri = self.base_groups_uri + '/123456789'
response = self.do_get(test_uri)
......
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