Skip to content
Snippets Groups Projects
Commit 5a1df635 authored by Will Daly's avatar Will Daly
Browse files

Merge pull request #5735 from edx/will/update-release-10-27

Merge release into master (with changes from Friday 10/24/14)
parents 25a74552 0cac6ea2
No related merge requests found
......@@ -59,7 +59,7 @@ class EnrollmentTest(ModuleStoreTestCase):
# Professional ed
# Expect that we're sent to the "choose your track" page
# (which will, in turn, redirect us to a page where we can verify/pay)
# We should NOT be auto-enrolled, because that would be giving
# We should NOT be auto-enrolled, because that would be giving
# away an expensive course for free :)
(['professional'], 'course_modes_choose', None),
)
......@@ -110,12 +110,32 @@ class EnrollmentTest(ModuleStoreTestCase):
self.client.logout()
self.client.get(reverse('register_user'), {'course_id': self.course.id})
self.client.login(username=self.USERNAME, password=self.PASSWORD)
self.dummy_request = RequestFactory().request()
self.dummy_request.session = self.client.session
strategy = DjangoStrategy(RequestFactory, request=self.dummy_request)
dummy_request = RequestFactory().request()
dummy_request.session = self.client.session
strategy = DjangoStrategy(RequestFactory, request=dummy_request)
change_enrollment_third_party(is_register=True, strategy=strategy, user=self.user)
self.assertTrue(CourseEnrollment.is_enrolled(self.user, self.course.id))
def test_no_prof_ed_third_party_autoenroll(self):
"""
Test that a user authenticating via third party auth while attempting to enroll
in a professional education course is not automatically enrolled in the course.
"""
self.client.logout()
# Create the course mode required for this test case
CourseModeFactory(course_id=self.course.id, mode_slug='professional')
self.client.get(reverse('register_user'), {'course_id': self.course.id})
self.client.login(username=self.USERNAME, password=self.PASSWORD)
dummy_request = RequestFactory().request()
dummy_request.session = self.client.session
strategy = DjangoStrategy(RequestFactory, request=dummy_request)
change_enrollment_third_party(is_register=True, strategy=strategy, user=self.user)
# Verify that the user has not been enrolled in the course
self.assertFalse(CourseEnrollment.is_enrolled(self.user, self.course.id))
def test_unenroll(self):
# Enroll the student in the course
CourseEnrollment.enroll(self.user, self.course.id, mode="honor")
......
......@@ -69,8 +69,8 @@ from social.apps.django_app.default import models
from social.exceptions import AuthException
from social.pipeline import partial
from student.models import CourseEnrollment, CourseEnrollmentException
from opaque_keys.edx.locations import SlashSeparatedCourseKey
from student.models import CourseMode, CourseEnrollment, CourseEnrollmentException
from opaque_keys.edx.keys import CourseKey
from logging import getLogger
......@@ -408,7 +408,7 @@ def login_analytics(*args, **kwargs):
},
context={
'Google Analytics': {
'clientId': tracking_context.get('client_id')
'clientId': tracking_context.get('client_id')
}
}
)
......@@ -420,14 +420,15 @@ def change_enrollment(*args, **kwargs):
a course, we automatically log them into that course.
"""
if kwargs['strategy'].session_get('registration_course_id'):
try:
CourseEnrollment.enroll(
kwargs['user'],
SlashSeparatedCourseKey.from_deprecated_string(
kwargs['strategy'].session_get('registration_course_id')
)
)
except CourseEnrollmentException:
pass
except Exception, e:
logger.exception(e)
course_id = CourseKey.from_string(
kwargs['strategy'].session_get('registration_course_id')
)
available_modes = CourseMode.modes_for_course_dict(course_id)
if 'honor' in available_modes:
try:
CourseEnrollment.enroll(kwargs['user'], course_id)
except CourseEnrollmentException:
pass
except Exception as ex:
logger.exception(ex)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment