def test_raises_exception_if_content_class_already_registered_in_different_config( self): """Tests ImproperlyConfigured exception is raised if the same content class is registered twice in different config files """ extension = VersioningCMSExtension() poll_versionable = VersionableItem( content_model=PollContent, grouper_field_name="poll", copy_function=default_copy, ) poll_versionable2 = VersionableItem( content_model=PollContent, grouper_field_name="poll", copy_function=default_copy, ) cms_config1 = Mock(spec=[], djangocms_versioning_enabled=True, versioning=[poll_versionable]) cms_config2 = Mock(spec=[], djangocms_versioning_enabled=True, versioning=[poll_versionable2]) with self.assertRaises(ImproperlyConfigured): extension.handle_versioning_setting(cms_config1) extension.handle_versioning_setting(cms_config2)
def test_missing_cms_config_attribute(self): """ Tests, if the versioning attribute has not been specified, an ImproperlyConfigured exception is raised """ extensions = VersioningCMSExtension() cms_config = Mock(spec=[], djangocms_versioning_enabled=True) with self.assertRaises(ImproperlyConfigured): extensions.handle_versioning_setting(cms_config)
def test_raises_exception_if_not_versionable_class(self): """Tests ImproperlyConfigured exception is raised if elements in the versioning list are not instances of VersionableItem classes """ extensions = VersioningCMSExtension() cms_config = Mock(spec=[], djangocms_versioning_enabled=True, versioning=['aaa', {}]) with self.assertRaises(ImproperlyConfigured): extensions.handle_versioning_setting(cms_config)
def test_raises_exception_if_versioning_not_iterable(self): """Tests ImproperlyConfigured exception is raised if versioning setting is not an iterable """ extensions = VersioningCMSExtension() cms_config = Mock(spec=[], djangocms_versioning_enabled=True, versioning=VersionableItem( content_model=PollContent, grouper_field_name='poll', copy_function=default_copy)) with self.assertRaises(ImproperlyConfigured): extensions.handle_versioning_setting(cms_config)
def test_versionables_list_created(self): """Test handle_versioning_setting method adds all the models into the versionables list """ extension = VersioningCMSExtension() poll_versionable = VersionableItem(content_model=PollContent, grouper_field_name='poll', copy_function=default_copy) blog_versionable = VersionableItem(content_model=BlogContent, grouper_field_name='blogpost', copy_function=default_copy) cms_config = Mock(spec=[], djangocms_versioning_enabled=True, versioning=[poll_versionable, blog_versionable]) extension.handle_versioning_setting(cms_config) self.assertListEqual(extension.versionables, [poll_versionable, blog_versionable])