52 lines
2.1 KiB
Python
52 lines
2.1 KiB
Python
"""
|
|
Unit tests for the Course Blocks signals
|
|
"""
|
|
|
|
from xmodule.modulestore.exceptions import ItemNotFoundError
|
|
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
|
from xmodule.modulestore.tests.factories import CourseFactory
|
|
|
|
from ..api import get_course_blocks, _get_block_structure_manager
|
|
from ..transformers.visibility import VisibilityTransformer
|
|
from .helpers import is_course_in_block_structure_cache, EnableTransformerRegistryMixin
|
|
|
|
|
|
class CourseBlocksSignalTest(EnableTransformerRegistryMixin, ModuleStoreTestCase):
|
|
"""
|
|
Tests for the Course Blocks signal
|
|
"""
|
|
|
|
def setUp(self):
|
|
super(CourseBlocksSignalTest, self).setUp(create_user=True)
|
|
self.course = CourseFactory.create()
|
|
self.course_usage_key = self.store.make_course_usage_key(self.course.id)
|
|
|
|
def test_course_publish(self):
|
|
# course is not visible to staff only
|
|
self.assertFalse(self.course.visible_to_staff_only)
|
|
orig_block_structure = get_course_blocks(self.user, self.course_usage_key)
|
|
self.assertFalse(
|
|
VisibilityTransformer.get_visible_to_staff_only(orig_block_structure, self.course_usage_key)
|
|
)
|
|
|
|
# course becomes visible to staff only
|
|
self.course.visible_to_staff_only = True
|
|
self.store.update_item(self.course, self.user.id)
|
|
|
|
updated_block_structure = get_course_blocks(self.user, self.course_usage_key)
|
|
self.assertTrue(
|
|
VisibilityTransformer.get_visible_to_staff_only(updated_block_structure, self.course_usage_key)
|
|
)
|
|
|
|
def test_course_delete(self):
|
|
get_course_blocks(self.user, self.course_usage_key)
|
|
bs_manager = _get_block_structure_manager(self.course.id)
|
|
self.assertIsNotNone(bs_manager.get_collected())
|
|
self.assertTrue(is_course_in_block_structure_cache(self.course.id, self.store))
|
|
|
|
self.store.delete_course(self.course.id, self.user.id)
|
|
with self.assertRaises(ItemNotFoundError):
|
|
bs_manager.get_collected()
|
|
|
|
self.assertFalse(is_course_in_block_structure_cache(self.course.id, self.store))
|