Adding unit test
This commit is contained in:
@@ -323,6 +323,48 @@ class ViewsTestCase(ModuleStoreTestCase):
|
||||
self.assertNotIn('Problem 1', response.content)
|
||||
self.assertNotIn('Problem 2', response.content)
|
||||
|
||||
def test_enroll_staff(self):
|
||||
"""
|
||||
Here we check two methods GET and POST and should be a staff user
|
||||
"""
|
||||
self.user.is_staff = True
|
||||
self.user.save()
|
||||
self.client.login(username=self.user.username, password=self.password)
|
||||
|
||||
# create the course
|
||||
course = CourseFactory.create()
|
||||
chapter = ItemFactory.create(parent=course, category='chapter')
|
||||
section = ItemFactory.create(parent=chapter, category='sequential', display_name="Sequence")
|
||||
|
||||
# create the _next parameter
|
||||
courseware_url = reverse(
|
||||
'courseware_section',
|
||||
kwargs={
|
||||
'course_id': unicode(course.id),
|
||||
'chapter': chapter.url_name,
|
||||
'section': section.url_name,
|
||||
}
|
||||
) + '?activate_block_id=test_block_id'
|
||||
|
||||
# create the url for enroll_staff view
|
||||
url = "{enroll_staff_url}?next={courseware_url}".format(
|
||||
enroll_staff_url= reverse('enroll_staff', kwargs={'course_id': unicode(course.id)}),
|
||||
courseware_url= courseware_url
|
||||
)
|
||||
|
||||
# Check the GET method
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
response_content = response.content
|
||||
self.assertIn('Enroll' , response_content)
|
||||
self.assertIn('Continue', response_content)
|
||||
|
||||
# Check the POST Method
|
||||
data = {'enroll' : 'Enroll'}
|
||||
response_post = self.client.post(url, data=data)
|
||||
# here we check the status code 302 because of the redirect
|
||||
self.assertEqual(response_post.status_code, 302)
|
||||
|
||||
@unittest.skipUnless(settings.FEATURES.get('ENABLE_SHOPPING_CART'), "Shopping Cart not enabled in settings")
|
||||
@patch.dict(settings.FEATURES, {'ENABLE_PAID_COURSE_REGISTRATION': True})
|
||||
def test_course_about_in_cart(self):
|
||||
|
||||
@@ -840,27 +840,29 @@ def get_cosmetic_display_price(course, registration_price):
|
||||
|
||||
|
||||
@require_global_staff
|
||||
@require_http_methods(['POST', 'GET'])
|
||||
@ensure_valid_course_key
|
||||
def enroll_staff(request, course_id):
|
||||
'''
|
||||
"""
|
||||
1. Should be staff
|
||||
2. should be a valid course_id
|
||||
3. shouldn't be enrolled before
|
||||
4. The requested view url to redirect
|
||||
|
||||
URL-ABC-GOTO-HERE-
|
||||
GET
|
||||
html: return enroll staff page
|
||||
|
||||
1. You want to register for this course?
|
||||
Confirm:
|
||||
1. User is valid staff user who wants to enroll.
|
||||
2. Course is valid course
|
||||
2. Yes
|
||||
3. Post request, enroll the user and redirect him to the requested view
|
||||
POST
|
||||
1. You want to register for this course?
|
||||
Confirm:
|
||||
1. User is valid staff user who wants to enroll.
|
||||
2. Course is valid course
|
||||
2. Yes
|
||||
3. Post request, enroll the user and redirect him to the requested view
|
||||
|
||||
:param request:
|
||||
:param course_id:
|
||||
:return:
|
||||
'''
|
||||
"""
|
||||
user = request.user
|
||||
course_key = CourseKey.from_string(course_id)
|
||||
_next = urllib.quote_plus(request.GET.get('next', 'info'), safe='/:?=')
|
||||
@@ -876,8 +878,8 @@ def enroll_staff(request, course_id):
|
||||
'csrftoken': csrf(request)["csrf_token"]
|
||||
})
|
||||
|
||||
elif request.method == 'POST' and 'enroll' in request.POST.dict():
|
||||
enrollment = CourseEnrollment.get_or_create_enrollment(request.user, course_key)
|
||||
elif request.method == 'POST' and 'enroll' in request.POST:
|
||||
enrollment = CourseEnrollment.get_or_create_enrollment(user, course_key)
|
||||
enrollment.update_enrollment(is_active=True)
|
||||
log.info(
|
||||
u"User %s enrolled in %s via `enroll_staff` view",
|
||||
|
||||
Reference in New Issue
Block a user