diff --git a/lms/djangoapps/courseware/access.py b/lms/djangoapps/courseware/access.py index 4b50c559deaf9cbcc9d3c037dd2e14d8d511f2c1..8c4fb662f931f530eebd62195f52860c6aaeb0d8 100644 --- a/lms/djangoapps/courseware/access.py +++ b/lms/djangoapps/courseware/access.py @@ -241,7 +241,11 @@ def _has_access_descriptor(user, descriptor, action, course_context=None): # Check start date if descriptor.start is not None: now = datetime.now(UTC()) - effective_start = _adjust_start_date_for_beta_testers(user, descriptor) + effective_start = _adjust_start_date_for_beta_testers( + user, + descriptor, + course_context=course_context + ) if now > effective_start: # after start date, everyone can see it debug("Allow: now > effective start date") @@ -337,7 +341,7 @@ def _dispatch(table, action, user, obj): type(obj), action)) -def _adjust_start_date_for_beta_testers(user, descriptor): +def _adjust_start_date_for_beta_testers(user, descriptor, course_context=None): """ If user is in a beta test group, adjust the start date by the appropriate number of days. @@ -364,7 +368,7 @@ def _adjust_start_date_for_beta_testers(user, descriptor): # bail early if no beta testing is set up return descriptor.start - if CourseBetaTesterRole(descriptor.location).has_user(user): + if CourseBetaTesterRole(descriptor.location, course_context=course_context).has_user(user): debug("Adjust start time: user in beta role for %s", descriptor) delta = timedelta(descriptor.days_early_for_beta) effective = descriptor.start - delta diff --git a/lms/djangoapps/courseware/tests/test_view_authentication.py b/lms/djangoapps/courseware/tests/test_view_authentication.py index df84803447632d6497b8c672d5ada728bcc2e0a4..ce035ff9e8098008b28630c1ec61b22eeb913f5b 100644 --- a/lms/djangoapps/courseware/tests/test_view_authentication.py +++ b/lms/djangoapps/courseware/tests/test_view_authentication.py @@ -1,6 +1,5 @@ import datetime import pytz -import unittest from mock import patch @@ -340,14 +339,13 @@ class TestBetatesterAccess(ModuleStoreTestCase): # now the student should see it self.assertTrue(has_access(self.beta_tester, self.course, 'load')) - @unittest.expectedFailure @patch.dict('courseware.access.settings.MITX_FEATURES', {'DISABLE_START_DATES': False}) def test_content_beta_period(self): """ Check that beta-test access works for content. """ # student user shouldn't see it - self.assertFalse(has_access(self.normal_student, self.content, 'load')) + self.assertFalse(has_access(self.normal_student, self.content, 'load', self.course.id)) # now the student should see it - self.assertTrue(has_access(self.beta_tester, self.content, 'load')) + self.assertTrue(has_access(self.beta_tester, self.content, 'load', self.course.id))