Merge pull request #9541 from edx/afzaledx/extending_auto_auth_for_verified_users
Added the ability to change the enrollment mode in the auto_auth API
This commit is contained in:
@@ -1046,9 +1046,10 @@ class CourseEnrollment(models.Model):
|
||||
`course_key` is our usual course_id string (e.g. "edX/Test101/2013_Fall)
|
||||
|
||||
`mode` is a string specifying what kind of enrollment this is. The
|
||||
default is "honor", meaning honor certificate. Future options
|
||||
may include "audit", "verified_id", etc. Please don't use it
|
||||
until we have these mapped out.
|
||||
default is 'honor', meaning honor certificate. Other options
|
||||
include 'professional', 'verified', 'audit',
|
||||
'no-id-professional' and 'credit'.
|
||||
See CourseMode in common/djangoapps/course_modes/models.py.
|
||||
|
||||
`check_access`: if True, we check that an accessible course actually
|
||||
exists for the given course_key before we enroll the student.
|
||||
|
||||
@@ -1769,6 +1769,10 @@ def auto_auth(request):
|
||||
full_name = request.GET.get('full_name', username)
|
||||
is_staff = request.GET.get('staff', None)
|
||||
course_id = request.GET.get('course_id', None)
|
||||
|
||||
# mode has to be one of 'honor'/'professional'/'verified'/'audit'/'no-id-professional'/'credit'
|
||||
enrollment_mode = request.GET.get('enrollment_mode', 'honor')
|
||||
|
||||
course_key = None
|
||||
if course_id:
|
||||
course_key = CourseLocator.from_string(course_id)
|
||||
@@ -1816,7 +1820,7 @@ def auto_auth(request):
|
||||
|
||||
# Enroll the user in a course
|
||||
if course_key is not None:
|
||||
CourseEnrollment.enroll(user, course_key)
|
||||
CourseEnrollment.enroll(user, course_key, mode=enrollment_mode)
|
||||
|
||||
# Apply the roles
|
||||
for role_name in role_names:
|
||||
|
||||
@@ -17,7 +17,8 @@ class AutoAuthPage(PageObject):
|
||||
|
||||
CONTENT_REGEX = r'.+? user (?P<username>\S+) \((?P<email>.+?)\) with password \S+ and user_id (?P<user_id>\d+)$'
|
||||
|
||||
def __init__(self, browser, username=None, email=None, password=None, staff=None, course_id=None, roles=None):
|
||||
def __init__(self, browser, username=None, email=None, password=None, staff=None, course_id=None,
|
||||
enrollment_mode=None, roles=None):
|
||||
"""
|
||||
Auto-auth is an end-point for HTTP GET requests.
|
||||
By default, it will create accounts with random user credentials,
|
||||
@@ -52,6 +53,8 @@ class AutoAuthPage(PageObject):
|
||||
|
||||
if course_id is not None:
|
||||
self._params['course_id'] = course_id
|
||||
if enrollment_mode:
|
||||
self._params['enrollment_mode'] = enrollment_mode
|
||||
|
||||
if roles is not None:
|
||||
self._params['roles'] = roles
|
||||
|
||||
@@ -168,32 +168,12 @@ class ProctoredExamsTest(BaseInstructorDashboardTest):
|
||||
# Auto-auth register for the course.
|
||||
self._auto_auth(self.USERNAME, self.EMAIL, False)
|
||||
|
||||
def _auto_auth(self, username, email, staff):
|
||||
def _auto_auth(self, username, email, staff, enrollment_mode="honor"):
|
||||
"""
|
||||
Logout and login with given credentials.
|
||||
"""
|
||||
AutoAuthPage(self.browser, username=username, email=email,
|
||||
course_id=self.course_id, staff=staff).visit()
|
||||
|
||||
def _login_as_a_verified_user(self):
|
||||
"""
|
||||
login as a verififed user
|
||||
"""
|
||||
|
||||
self._auto_auth(self.USERNAME, self.EMAIL, False)
|
||||
|
||||
# the track selection page cannot be visited. see the other tests to see if any prereq is there.
|
||||
# Navigate to the track selection page
|
||||
self.track_selection_page.visit()
|
||||
|
||||
# Enter the payment and verification flow by choosing to enroll as verified
|
||||
self.track_selection_page.enroll('verified')
|
||||
|
||||
# Proceed to the fake payment page
|
||||
self.payment_and_verification_flow.proceed_to_payment()
|
||||
|
||||
# Submit payment
|
||||
self.fake_payment_page.submit_payment()
|
||||
course_id=self.course_id, staff=staff, enrollment_mode=enrollment_mode).visit()
|
||||
|
||||
def _create_a_proctored_exam_and_attempt(self):
|
||||
"""
|
||||
@@ -212,7 +192,7 @@ class ProctoredExamsTest(BaseInstructorDashboardTest):
|
||||
|
||||
# login as a verified student and visit the courseware.
|
||||
LogoutPage(self.browser).visit()
|
||||
self._login_as_a_verified_user()
|
||||
self._auto_auth(self.USERNAME, self.EMAIL, False, enrollment_mode="verified")
|
||||
self.courseware_page.visit()
|
||||
|
||||
# Start the proctored exam.
|
||||
@@ -235,7 +215,7 @@ class ProctoredExamsTest(BaseInstructorDashboardTest):
|
||||
|
||||
# login as a verified student and visit the courseware.
|
||||
LogoutPage(self.browser).visit()
|
||||
self._login_as_a_verified_user()
|
||||
self._auto_auth(self.USERNAME, self.EMAIL, False, enrollment_mode="verified")
|
||||
self.courseware_page.visit()
|
||||
|
||||
# Start the proctored exam.
|
||||
|
||||
Reference in New Issue
Block a user