def test_verify_deprecated_warning_message_with_multiple_features(self): """ Verify deprecated warning info for multiple deprecated features. """ block_types = ['peergrading', 'combinedopenended', 'openassessment'] course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info(course_module.id, course_module.advanced_modules, info, block_types)
def test_verify_deprecated_warning_message_with_multiple_features(self): """ Verify deprecated warning info for multiple deprecated features. """ block_types = ['notes', 'lti'] with override_settings(DEPRECATED_BLOCK_TYPES=block_types): course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info(course_module.id, course_module.advanced_modules, info, block_types)
def test_verify_deprecated_warning_message(self, publish, block_types): """ Verify deprecated warning info. """ course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types, publish=publish) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info(course_module.id, course_module.advanced_modules, info, block_types)
def test_verify_deprecated_warning_message(self, publish, block_types): """ Verify deprecated warning info. """ course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types, publish=publish) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info( course_module.id, course_module.advanced_modules, info, block_types )
def test_verify_warn_only_on_enabled_modules(self, enabled_block_types, deprecated_block_types): """ Verify that we only warn about block_types that are both deprecated and enabled. """ expected_block_types = list(set(enabled_block_types) & set(deprecated_block_types)) course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=enabled_block_types) info = _deprecated_blocks_info(course_module, deprecated_block_types) self._verify_deprecated_info( course_module.id, course_module.advanced_modules, info, expected_block_types )
def test_verify_deprecated_warning_message_with_single_feature(self, publish): """ Verify deprecated warning info for single deprecated feature. """ block_types = settings.DEPRECATED_BLOCK_TYPES course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types, publish=publish) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info( course_module.id, course_module.advanced_modules, info, block_types )
def test_verify_deprecated_warning_message_with_single_feature( self, publish): """ Verify deprecated warning info for single deprecated feature. """ block_types = settings.DEPRECATED_BLOCK_TYPES course_module = modulestore().get_item(self.course.location) self._create_test_data(course_module, create_blocks=True, block_types=block_types, publish=publish) info = _deprecated_blocks_info(course_module, block_types) self._verify_deprecated_info(course_module.id, course_module.advanced_modules, info, block_types)
def test_deprecated_blocks_list_updated_correctly(self, delete_vertical): """ Verify that deprecated blocks list shown on banner is updated correctly. Here is the scenario: This list of deprecated blocks shown on banner contains published and un-published blocks. That list should be updated when we delete un-published block(s). This behavior should be same if we delete unpublished vertical or problem. """ block_types = ['peergrading'] course_module = modulestore().get_item(self.course.location) vertical1 = ItemFactory.create( parent_location=self.sequential.location, category='vertical', display_name='Vert1 Subsection1') problem1 = ItemFactory.create( parent_location=vertical1.location, category='peergrading', display_name='peergrading problem in vert1', publish_item=False) info = _deprecated_blocks_info(course_module, block_types) # info['blocks'] should be empty here because there is nothing # published or un-published present self.assertEqual(info['blocks'], []) vertical2 = ItemFactory.create( parent_location=self.sequential.location, category='vertical', display_name='Vert2 Subsection1') ItemFactory.create(parent_location=vertical2.location, category='peergrading', display_name='peergrading problem in vert2', pubish_item=True) # At this point CourseStructure will contain both the above # published and un-published verticals info = _deprecated_blocks_info(course_module, block_types) self.assertItemsEqual( info['blocks'], [[ reverse_usage_url('container_handler', vertical1.location), 'peergrading problem in vert1' ], [ reverse_usage_url('container_handler', vertical2.location), 'peergrading problem in vert2' ]]) # Delete the un-published vertical or problem so that CourseStructure updates its data if delete_vertical: self.store.delete_item(vertical1.location, self.user.id) else: self.store.delete_item(problem1.location, self.user.id) info = _deprecated_blocks_info(course_module, block_types) # info['blocks'] should only contain the info about vertical2 which is published. # There shouldn't be any info present about un-published vertical1 self.assertEqual(info['blocks'], [[ reverse_usage_url('container_handler', vertical2.location), 'peergrading problem in vert2' ]])
def test_deprecated_blocks_list_updated_correctly(self, delete_vertical): """ Verify that deprecated blocks list shown on banner is updated correctly. Here is the scenario: This list of deprecated blocks shown on banner contains published and un-published blocks. That list should be updated when we delete un-published block(s). This behavior should be same if we delete unpublished vertical or problem. """ block_types = ['notes'] course_module = modulestore().get_item(self.course.location) vertical1 = ItemFactory.create( parent_location=self.sequential.location, category='vertical', display_name='Vert1 Subsection1' ) problem1 = ItemFactory.create( parent_location=vertical1.location, category='notes', display_name='notes problem in vert1', publish_item=False ) info = _deprecated_blocks_info(course_module, block_types) # info['blocks'] should be empty here because there is nothing # published or un-published present self.assertEqual(info['blocks'], []) vertical2 = ItemFactory.create( parent_location=self.sequential.location, category='vertical', display_name='Vert2 Subsection1' ) ItemFactory.create( parent_location=vertical2.location, category='notes', display_name='notes problem in vert2', pubish_item=True ) # At this point CourseStructure will contain both the above # published and un-published verticals info = _deprecated_blocks_info(course_module, block_types) self.assertItemsEqual( info['blocks'], [ [reverse_usage_url('container_handler', vertical1.location), 'notes problem in vert1'], [reverse_usage_url('container_handler', vertical2.location), 'notes problem in vert2'] ] ) # Delete the un-published vertical or problem so that CourseStructure updates its data if delete_vertical: self.store.delete_item(vertical1.location, self.user.id) else: self.store.delete_item(problem1.location, self.user.id) info = _deprecated_blocks_info(course_module, block_types) # info['blocks'] should only contain the info about vertical2 which is published. # There shouldn't be any info present about un-published vertical1 self.assertEqual( info['blocks'], [[reverse_usage_url('container_handler', vertical2.location), 'notes problem in vert2']] )