* Generate common/djangoapps import shims for LMS * Generate common/djangoapps import shims for Studio * Stop appending project root to sys.path * Stop appending common/djangoapps to sys.path * Import from common.djangoapps.course_action_state instead of course_action_state * Import from common.djangoapps.course_modes instead of course_modes * Import from common.djangoapps.database_fixups instead of database_fixups * Import from common.djangoapps.edxmako instead of edxmako * Import from common.djangoapps.entitlements instead of entitlements * Import from common.djangoapps.pipline_mako instead of pipeline_mako * Import from common.djangoapps.static_replace instead of static_replace * Import from common.djangoapps.student instead of student * Import from common.djangoapps.terrain instead of terrain * Import from common.djangoapps.third_party_auth instead of third_party_auth * Import from common.djangoapps.track instead of track * Import from common.djangoapps.util instead of util * Import from common.djangoapps.xblock_django instead of xblock_django * Add empty common/djangoapps/__init__.py to fix pytest collection * Fix pylint formatting violations * Exclude import_shims/ directory tree from linting
42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
"""Tests for verifying availability of resources for locking"""
|
|
|
|
|
|
import ddt
|
|
import six
|
|
from mock import Mock, patch
|
|
|
|
from cms.djangoapps.contentstore.signals.handlers import GRADING_POLICY_COUNTDOWN_SECONDS, handle_grading_policy_changed
|
|
from common.djangoapps.student.models import CourseEnrollment
|
|
from common.djangoapps.student.tests.factories import UserFactory
|
|
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
|
from xmodule.modulestore.tests.factories import CourseFactory
|
|
|
|
|
|
@ddt.ddt
|
|
class LockedTest(ModuleStoreTestCase):
|
|
"""Test class to verify locking of mocked resources"""
|
|
|
|
def setUp(self):
|
|
super(LockedTest, self).setUp()
|
|
self.course = CourseFactory.create(
|
|
org='edx',
|
|
name='course',
|
|
run='run',
|
|
)
|
|
self.user = UserFactory.create()
|
|
CourseEnrollment.enroll(self.user, self.course.id)
|
|
|
|
@patch('cms.djangoapps.contentstore.signals.handlers.cache.add')
|
|
@patch('cms.djangoapps.contentstore.signals.handlers.task_compute_all_grades_for_course.apply_async')
|
|
@ddt.data(True, False)
|
|
def test_locked(self, lock_available, compute_grades_async_mock, add_mock):
|
|
add_mock.return_value = lock_available
|
|
sender = Mock()
|
|
|
|
handle_grading_policy_changed(sender, course_key=six.text_type(self.course.id))
|
|
|
|
cache_key = 'handle_grading_policy_changed-{}'.format(six.text_type(self.course.id))
|
|
self.assertEqual(lock_available, compute_grades_async_mock.called)
|
|
if lock_available:
|
|
add_mock.assert_called_once_with(cache_key, "true", GRADING_POLICY_COUNTDOWN_SECONDS)
|