Commit 7256bd1b by Matt Drayer

Merge pull request #10522 from edx/ziafazal/SOL-1377

SOL-1377: allow certifcate exception to be added for multiple courses
parents e978bcca 94166429
...@@ -447,3 +447,42 @@ class CertificatesInstructorApiTest(SharedModuleStoreTestCase): ...@@ -447,3 +447,42 @@ class CertificatesInstructorApiTest(SharedModuleStoreTestCase):
res_json['message'], res_json['message'],
u"Student (username/email={user_id} already in certificate exception list)".format(user_id=user) u"Student (username/email={user_id} already in certificate exception list)".format(user_id=user)
) )
def test_certificate_exception_same_user_in_two_different_courses(self):
"""
Test certificates exception addition api endpoint in scenario when same
student is added to two different courses.
"""
self.client.login(username=self.global_staff.username, password='test')
url_course1 = reverse(
'create_certificate_exception',
kwargs={'course_id': unicode(self.course.id), 'white_list_student': ''}
)
response = self.client.post(
url_course1,
data=json.dumps(self.certificate_exception_data),
content_type='application/json'
)
self.assertEqual(response.status_code, 200)
res_json = json.loads(response.content)
self.assertTrue(res_json['success'])
course2 = CourseFactory.create()
url_course2 = reverse(
'create_certificate_exception',
kwargs={'course_id': unicode(course2.id), 'white_list_student': ''}
)
# add certificate exception for same user in a different course
self.client.post(
url_course2,
data=json.dumps(self.certificate_exception_data),
content_type='application/json'
)
self.assertEqual(response.status_code, 200)
res_json = json.loads(response.content)
self.assertTrue(res_json['success'])
...@@ -2780,7 +2780,7 @@ def process_certificate_exceptions(data_list, course_key): ...@@ -2780,7 +2780,7 @@ def process_certificate_exceptions(data_list, course_key):
except MultipleObjectsReturned: except MultipleObjectsReturned:
raise ValueError(_('Multiple Students found with username/email={user}').format(user=user)) raise ValueError(_('Multiple Students found with username/email={user}').format(user=user))
if CertificateWhitelist.objects.filter(user=db_user, whitelist=True).count() > 0: if CertificateWhitelist.objects.filter(user=db_user, course_id=course_key, whitelist=True).count() > 0:
raise ValueError( raise ValueError(
_("Student (username/email={user_id} already in certificate exception list)").format(user_id=user) _("Student (username/email={user_id} already in certificate exception list)").format(user_id=user)
) )
......
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