Files
edx-platform/lms/djangoapps/gating/tests/test_signals.py
2021-02-22 12:58:41 +05:00

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