Commit 00b0eefe by Anthony Mangano Committed by GitHub

Merge pull request #14217 from edx/ECOM-5936-add-display-name-to-enrollment-api-response

Add course_name to enrollment api responses
parents c3c86b8b 0fd91f07
......@@ -37,8 +37,9 @@ def get_enrollments(user_id):
"mode": "honor",
"is_active": True,
"user": "Bob",
"course": {
"course_details": {
"course_id": "edX/DemoX/2014T2",
"course_name": "edX Demonstration Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......@@ -64,8 +65,9 @@ def get_enrollments(user_id):
"mode": "verified",
"is_active": True,
"user": "Bob",
"course": {
"course_details": {
"course_id": "edX/edX-Insider/2014T2",
"course_name": "edX Insider Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......@@ -111,8 +113,9 @@ def get_enrollment(user_id, course_id):
"mode": "honor",
"is_active": True,
"user": "Bob",
"course": {
"course_details": {
"course_id": "edX/DemoX/2014T2",
"course_name": "edX Demonstration Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......@@ -163,8 +166,9 @@ def add_enrollment(user_id, course_id, mode=None, is_active=True):
"mode": "audit",
"is_active": True,
"user": "Bob",
"course": {
"course_details": {
"course_id": "edX/DemoX/2014T2",
"course_name": "edX Demonstration Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......@@ -217,8 +221,9 @@ def update_enrollment(user_id, course_id, mode=None, is_active=None, enrollment_
"mode": "honor",
"is_active": True,
"user": "Bob",
"course": {
"course_details": {
"course_id": "edX/DemoX/2014T2",
"course_name": "edX Demonstration Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......@@ -282,6 +287,7 @@ def get_course_enrollment_details(course_id, include_expired=False):
>>> get_course_enrollment_details("edX/DemoX/2014T2")
{
"course_id": "edX/DemoX/2014T2",
"course_name": "edX Demonstration Course",
"enrollment_end": "2014-12-20T20:18:00Z",
"enrollment_start": "2014-10-15T20:18:00Z",
"course_start": "2015-02-03T00:00:00Z",
......
......@@ -36,6 +36,7 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth
"""
course_id = serializers.CharField(source="id")
course_name = serializers.CharField(source="display_name_with_default")
enrollment_start = serializers.DateTimeField(format=None)
enrollment_end = serializers.DateTimeField(format=None)
course_start = serializers.DateTimeField(source="start", format=None)
......
......@@ -71,6 +71,7 @@ class EnrollmentDataTest(ModuleStoreTestCase):
# Confirm the returned enrollment and the data match up.
self.assertEqual(course_mode, enrollment['mode'])
self.assertEqual(is_active, enrollment['is_active'])
self.assertEqual(self.course.display_name_with_default, enrollment['course_details']['course_name'])
def test_unenroll(self):
# Enroll the user in the course
......
......@@ -191,8 +191,13 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
)
# Create an enrollment
self.assert_enrollment_status()
resp = self.assert_enrollment_status()
# Verify that the response contains the correct course_name
data = json.loads(resp.content)
self.assertEqual(self.course.display_name_with_default, data['course_details']['course_name'])
# Verify that the enrollment was created correctly
self.assertTrue(CourseEnrollment.is_enrolled(self.user, self.course.id))
course_mode, is_active = CourseEnrollment.enrollment_mode_for_user(self.user, self.course.id)
self.assertTrue(is_active)
......@@ -212,6 +217,7 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
self.assertEqual(resp.status_code, status.HTTP_200_OK)
data = json.loads(resp.content)
self.assertEqual(unicode(self.course.id), data['course_details']['course_id'])
self.assertEqual(self.course.display_name_with_default, data['course_details']['course_name'])
self.assertEqual(CourseMode.DEFAULT_MODE_SLUG, data['mode'])
self.assertTrue(data['is_active'])
......@@ -329,8 +335,8 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
self.assertEqual(response.status_code, status.HTTP_200_OK)
data = json.loads(response.content)
self.assertItemsEqual(
[enrollment['course_details']['course_id'] for enrollment in data],
[unicode(course.id) for course in courses]
[(datum['course_details']['course_id'], datum['course_details']['course_name']) for datum in data],
[(unicode(course.id), course.display_name_with_default) for course in courses]
)
def test_enrollment_list_permissions(self):
......@@ -411,6 +417,7 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
data = json.loads(resp.content)
self.assertEqual(unicode(self.course.id), data['course_id'])
self.assertEqual(self.course.display_name_with_default, data['course_name'])
mode = data['course_modes'][0]
self.assertEqual(mode['slug'], CourseMode.HONOR)
self.assertEqual(mode['sku'], '123')
......
......@@ -99,6 +99,7 @@ class EnrollmentView(APIView, ApiKeyPermissionMixIn):
* course_end: The date and time when the course closes. If
null, the course never ends.
* course_id: The unique identifier for the course.
* course_name: The name of the course.
* course_modes: An array of data about the enrollment modes
supported for the course. If the request uses the parameter
include_expired=1, the array also includes expired
......@@ -216,6 +217,7 @@ class EnrollmentCourseDetailView(APIView):
* course_end: The date and time when the course closes. If
null, the course never ends.
* course_id: The unique identifier for the course.
* course_name: The name of the course.
* course_modes: An array of data about the enrollment modes
supported for the course. If the request uses the parameter
include_expired=1, the array also includes expired
......@@ -400,6 +402,8 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
* course_id: The unique identifier for the course.
* course_name: The name of the course.
* course_modes: An array of data about the enrollment modes
supported for the course. If the request uses the parameter
include_expired=1, the array also includes expired
......
......@@ -33,6 +33,7 @@ Get the User's Enrollment Status in a Course
"is_active": true,
"course_details": {
"course_id": "edX/DemoX/Demo_Course",
"course_name": "edX Demonstration Course",
"enrollment_end": null,
"course_modes": [
{
......@@ -70,6 +71,7 @@ Get the User's Enrollment Information for a Course
{
"course_id": "edX/DemoX/Demo_Course",
"course_name": "edX Demonstration Course",
"enrollment_end": null,
"course_modes": [
{
......@@ -112,6 +114,7 @@ View a User's Enrollments or Enroll a User in a Course
"is_active": true,
"course_details": {
"course_id": "edX/DemoX/Demo_Course",
"course_name": "edX Demonstration Course",
"enrollment_end": null,
"course_modes": [
{
......@@ -135,6 +138,7 @@ View a User's Enrollments or Enroll a User in a Course
"is_active": true,
"course_details": {
"course_id": "ArbisoftX/BulkyEmail101/2014-15",
"course_name": "Course Name Here",
"enrollment_end": null,
"course_modes": [
{
......
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