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)
예제 #2
0
 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)
예제 #4
0
 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)
예제 #5
0
 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])