Update LMS API to send correct response status code

This commit is contained in:
Simon Chen
2019-06-25 16:13:53 -04:00
parent 39efc54a27
commit d48ba26d50
2 changed files with 17 additions and 15 deletions

View File

@@ -474,7 +474,7 @@ class BaseCourseEnrollmentTestsMixin(ProgramCacheTestCaseMixin):
)
def test_422_unprocessable_entity_bad_data(self, request_data):
response = self.request(self.default_url, request_data)
self.assertEqual(response.status_code, 422)
self.assertEqual(response.status_code, 400)
self.assertIn('invalid enrollment record', response.data)
@ddt.data(
@@ -487,7 +487,7 @@ class BaseCourseEnrollmentTestsMixin(ProgramCacheTestCaseMixin):
request_data.extend(bad_records)
response = self.request(self.default_url, request_data)
self.assertEqual(response.status_code, status.HTTP_422_UNPROCESSABLE_ENTITY)
self.assertEqual(response.status_code, 400)
self.assertIn('invalid enrollment record', response.data)
@@ -976,7 +976,8 @@ class ProgramEnrollmentViewPostTests(APITestCase):
content_type='application/json'
)
self.assertEqual(response.status_code, status.HTTP_422_UNPROCESSABLE_ENTITY)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.data, 'invalid enrollment record')
def test_unauthenticated(self):
self.client.logout()
@@ -1056,7 +1057,7 @@ class ProgramEnrollmentViewPostTests(APITestCase):
):
response = self.client.post(url, json.dumps(enrollments), content_type='application/json')
self.assertEqual(422, response.status_code)
self.assertEqual(400, response.status_code)
self.assertEqual('invalid enrollment record', response.data)
@ddt.data(REQUEST_STUDENT_KEY, 'status', 'curriculum_uuid')
@@ -1074,7 +1075,7 @@ class ProgramEnrollmentViewPostTests(APITestCase):
):
response = self.client.post(url, json.dumps(enrollments), content_type='application/json')
self.assertEqual(422, response.status_code)
self.assertEqual(400, response.status_code)
self.assertEqual('invalid enrollment record', response.data)
@ddt.data(
@@ -1094,7 +1095,7 @@ class ProgramEnrollmentViewPostTests(APITestCase):
):
response = self.client.post(url, json.dumps(enrollments), content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_422_UNPROCESSABLE_ENTITY)
self.assertEqual(response.status_code, 400)
self.assertEqual('invalid enrollment record', response.data)
@@ -1229,7 +1230,8 @@ class ProgramEnrollmentViewPatchTests(APITestCase):
content_type='application/json'
)
self.assertEqual(response.status_code, status.HTTP_422_UNPROCESSABLE_ENTITY)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.data, 'invalid enrollment record')
def test_duplicate_enrollment(self):
enrollments = {}
@@ -1332,7 +1334,7 @@ class ProgramEnrollmentViewPatchTests(APITestCase):
with mock.patch('lms.djangoapps.program_enrollments.api.v1.views.get_programs', autospec=True):
response = self.client.patch(url, json.dumps(enrollments), content_type='application/json')
self.assertEqual(422, response.status_code)
self.assertEqual(400, response.status_code)
self.assertEqual('invalid enrollment record', response.data)

View File

@@ -356,7 +356,7 @@ class ProgramEnrollmentsView(DeveloperErrorViewMixin, PaginatedAPIView):
if None in student_data:
return Response(
'invalid enrollment record',
status.HTTP_422_UNPROCESSABLE_ENTITY
status.HTTP_400_BAD_REQUEST
)
response_data = {}
@@ -385,7 +385,7 @@ class ProgramEnrollmentsView(DeveloperErrorViewMixin, PaginatedAPIView):
else:
return Response(
'invalid enrollment record',
status.HTTP_422_UNPROCESSABLE_ENTITY
status.HTTP_400_BAD_REQUEST
)
# TODO: make this a bulk save - https://openedx.atlassian.net/browse/EDUCATOR-4305
@@ -410,7 +410,7 @@ class ProgramEnrollmentsView(DeveloperErrorViewMixin, PaginatedAPIView):
if None in student_data:
return Response(
'invalid enrollment record',
status.HTTP_422_UNPROCESSABLE_ENTITY
status.HTTP_400_BAD_REQUEST
)
response_data = {}
@@ -725,7 +725,7 @@ class ProgramCourseEnrollmentsView(DeveloperErrorViewMixin, ProgramCourseRunSpec
enrollments = []
if not isinstance(request.data, list):
return Response('invalid enrollment record', status.HTTP_422_UNPROCESSABLE_ENTITY)
return Response('invalid enrollment record', status.HTTP_400_BAD_REQUEST)
if len(request.data) > MAX_ENROLLMENT_RECORDS:
return Response(
'enrollment limit 25', status.HTTP_413_REQUEST_ENTITY_TOO_LARGE
@@ -739,11 +739,11 @@ class ProgramCourseEnrollmentsView(DeveloperErrorViewMixin, ProgramCourseRunSpec
else:
enrollments.append(enrollment_request)
except KeyError: # student_key is not in enrollment_request
return Response('invalid enrollment record', status.HTTP_422_UNPROCESSABLE_ENTITY)
return Response('invalid enrollment record', status.HTTP_400_BAD_REQUEST)
except TypeError: # enrollment_request isn't a dict
return Response('invalid enrollment record', status.HTTP_422_UNPROCESSABLE_ENTITY)
return Response('invalid enrollment record', status.HTTP_400_BAD_REQUEST)
except ValidationError: # there was some other error raised by the serializer
return Response('invalid enrollment record', status.HTTP_422_UNPROCESSABLE_ENTITY)
return Response('invalid enrollment record', status.HTTP_400_BAD_REQUEST)
program_enrollments = self.get_existing_program_enrollments(program_uuid, enrollments)
for enrollment in enrollments: