From c0f570ceab10b5e88e619f5ae58ce4640d9d4b97 Mon Sep 17 00:00:00 2001 From: Calen Pennington <cale@edx.org> Date: Thu, 21 Nov 2013 11:05:00 -0500 Subject: [PATCH] Fix [LMS-1528] (500 error when checking for beta access) --- lms/djangoapps/courseware/access.py | 10 +++++++--- .../courseware/tests/test_view_authentication.py | 6 ++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lms/djangoapps/courseware/access.py b/lms/djangoapps/courseware/access.py index 4b50c559dea..8c4fb662f93 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 df848034476..ce035ff9e80 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)) -- GitLab