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