EDUCATOR-1511: credit users added to verified user partition irrespective of upgrade deadline

This commit is contained in:
Sanford Student
2017-10-20 15:33:52 -04:00
committed by Alex Dusenbery
parent 6e846fd938
commit fd8a9fdb02
7 changed files with 53 additions and 48 deletions

View File

@@ -75,15 +75,7 @@ class EnrollmentTrackPartitionScheme(object):
If a course is using the Verified Track Cohorting pilot feature, this method
returns None regardless of the user's enrollment mode.
"""
def _log_for_educator_1511(log_statement):
# temporary logging for EDUCATOR-1511. Will be rolled back as soon as we have some logs
if course_key == CourseKey.from_string('course-v1:ASUx+ENG101x+2177A'):
LOGGER.warning('EDUCATOR-1511: get_group_for_user | {0}'.format(log_statement))
_log_for_educator_1511('Getting group for user id {0}'.format(user.id))
if is_course_using_cohort_instead(course_key):
_log_for_educator_1511('Course is using cohort instead.')
return None
# First, check if we have to deal with masquerading.
@@ -101,12 +93,12 @@ class EnrollmentTrackPartitionScheme(object):
mode_slug,
modes=CourseMode.modes_for_course(course_key, include_expired=True, only_selectable=False),
)
_log_for_educator_1511('Got enrollment for user {0}: mode slug is {1}'.format(user.id, mode_slug))
if course_mode and CourseMode.is_credit_mode(course_mode):
_log_for_educator_1511('user {0} is in credit mode, returning verified partition'.format(user.id))
course_mode = CourseMode.verified_mode_for_course(course_key)
# We want the verified track even if the upgrade deadline has passed, since we
# are determining what content to show the user, not whether the user can enroll
# in the verified track.
course_mode = CourseMode.verified_mode_for_course(course_key, include_expired=True)
if not course_mode:
_log_for_educator_1511('user {0} in track {1} added to default partition'.format(user.id, mode_slug))
course_mode = CourseMode.DEFAULT_MODE
return Group(ENROLLMENT_GROUP_IDS[course_mode.slug], unicode(course_mode.name))
else:

View File

@@ -146,6 +146,19 @@ class EnrollmentTrackPartitionSchemeTest(SharedModuleStoreTestCase):
create_mode(self.course, CourseMode.VERIFIED, "Verified Enrollment Track", min_price=1)
self.assertEqual("Verified Enrollment Track", self._get_user_group().name)
def test_credit_after_upgrade_deadline(self):
create_mode(self.course, CourseMode.CREDIT_MODE, "Credit Enrollment Track", min_price=1)
CourseEnrollment.enroll(self.student, self.course.id, mode=CourseMode.CREDIT_MODE)
# Create a verified mode and check that it is returned for the learner enrolled in Credit.
# Make the mode "expired" to ensure that credit users can still see verified-only content after
# the upgrade deadline has passed (see EDUCATOR-1511 for why this matters).
create_mode(
self.course, CourseMode.VERIFIED, "Verified Enrollment Track", min_price=1,
expiration_datetime=datetime.now(pytz.UTC) + timedelta(days=-1)
)
self.assertEqual("Verified Enrollment Track", self._get_user_group().name)
def test_using_verified_track_cohort(self):
VerifiedTrackCohortedCourse.objects.create(course_key=self.course.id, enabled=True).save()
CourseEnrollment.enroll(self.student, self.course.id)

View File

@@ -175,7 +175,7 @@ class TestCourseHomePage(CourseHomePageTestCase):
course_home_url(self.course)
# Fetch the view and verify the query counts
with self.assertNumQueries(49, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with self.assertNumQueries(50, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with check_mongo_calls(4):
url = course_home_url(self.course)
self.client.get(url)

View File

@@ -126,7 +126,7 @@ class TestCourseUpdatesPage(SharedModuleStoreTestCase):
course_updates_url(self.course)
# Fetch the view and verify that the query counts haven't changed
with self.assertNumQueries(30, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with self.assertNumQueries(31, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with check_mongo_calls(4):
url = course_updates_url(self.course)
self.client.get(url)