47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
"""
|
|
Unit tests for gating.signals module
|
|
"""
|
|
|
|
|
|
from unittest.mock import Mock, patch
|
|
|
|
from common.djangoapps.student.tests.factories import UserFactory
|
|
from lms.djangoapps.gating.signals import evaluate_subsection_gated_milestones
|
|
from xmodule.modulestore.django import modulestore
|
|
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
|
from xmodule.modulestore.tests.factories import CourseFactory
|
|
|
|
|
|
class TestHandleScoreChanged(ModuleStoreTestCase):
|
|
"""
|
|
Test case for handle_score_changed django signal handler
|
|
"""
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.course = CourseFactory.create(org='TestX', number='TS01', run='2016_Q1')
|
|
self.user = UserFactory.create()
|
|
self.subsection_grade = Mock()
|
|
|
|
@patch('lms.djangoapps.gating.api.gating_api.get_gating_milestone')
|
|
def test_gating_enabled(self, mock_gating_milestone):
|
|
self.course.enable_subsection_gating = True
|
|
modulestore().update_item(self.course, 0)
|
|
evaluate_subsection_gated_milestones(
|
|
sender=None,
|
|
user=self.user,
|
|
course=self.course,
|
|
subsection_grade=self.subsection_grade,
|
|
)
|
|
assert mock_gating_milestone.called
|
|
|
|
@patch('lms.djangoapps.gating.api.gating_api.get_gating_milestone')
|
|
def test_gating_disabled(self, mock_gating_milestone):
|
|
evaluate_subsection_gated_milestones(
|
|
sender=None,
|
|
user=self.user,
|
|
course=self.course,
|
|
subsection_grade=self.subsection_grade,
|
|
)
|
|
assert not mock_gating_milestone.called
|