class GenericModeratorTestCase(SettingsTestCase): fixtures = ['test_users.json', 'test_moderation.json'] urls = 'django-moderation.test_urls' test_settings = 'moderation.tests.settings.generic' def setUp(self): self.user = User.objects.get(username='******') obj = ModeratedObject(content_object=self.user) obj.save() self.user.moderated_object = obj self.moderator = GenericModerator(UserProfile) def test_create_generic_moderator(self): self.assertEqual(self.moderator.model_class, UserProfile) self.assertEqual(self.moderator.manager_names, ['objects']) self.assertEqual(self.moderator.moderation_manager_class, ModerationObjectsManager) self.assertEqual(self.moderator.auto_approve_for_staff, True) self.assertEqual(self.moderator.auto_approve_for_groups, None) self.assertEqual(self.moderator.auto_reject_for_groups, None) def test_subclass_moderator_class(self): class UserProfileModerator(GenericModerator): auto_approve_for_staff = False auto_approve_for_groups = ['admins', 'moderators'] auto_reject_for_groups = ['others'] moderator = UserProfileModerator(UserProfile) self.assertEqual(moderator.model_class, UserProfile) self.assertEqual(moderator.manager_names, ['objects']) self.assertEqual(moderator.moderation_manager_class, ModerationObjectsManager) self.assertEqual(moderator.auto_approve_for_staff, False) self.assertEqual(moderator.auto_approve_for_groups, ['admins', 'moderators']) self.assertEqual(moderator.auto_reject_for_groups, ['others']) def test_send_notification(self): self.moderator.send( self.user, subject_template='moderation/notification_subject_moderator.txt', message_template='moderation/notification_message_moderator.txt', recipient_list=['*****@*****.**']) self.assertEqual(len(mail.outbox), 1) def test_inform_moderator(self): self.moderator = GenericModerator(UserProfile) self.moderator.inform_moderator(self.user) self.assertEqual(len(mail.outbox), 1) def test_inform_user(self): self.moderator = GenericModerator(UserProfile) self.moderator.inform_user(self.user, self.user) self.assertEqual(len(mail.outbox), 1) def test_moderator_should_have_field_exclude(self): self.assertTrue(hasattr(self.moderator, 'fields_exclude'))
class GenericModeratorTestCase(TestCase): fixtures = ['test_users.json', 'test_moderation.json'] urls = 'django-moderation.test_urls' def setUp(self): self.user = User.objects.get(username='******') obj = ModeratedObject(content_object=self.user) obj.save() self.user.moderated_object = obj self.moderator = GenericModerator(UserProfile) def test_create_generic_moderator(self): self.assertEqual(self.moderator.model_class, UserProfile) self.assertEqual(self.moderator.manager_names, ['objects']) self.assertEqual(self.moderator.moderation_manager_class, ModerationObjectsManager) self.assertEqual(self.moderator.auto_approve_for_staff, True) self.assertEqual(self.moderator.auto_approve_for_groups, None) self.assertEqual(self.moderator.auto_reject_for_groups, None) def test_subclass_moderator_class(self): class UserProfileModerator(GenericModerator): auto_approve_for_staff = False auto_approve_for_groups = ['admins', 'moderators'] auto_reject_for_groups = ['others'] moderator = UserProfileModerator(UserProfile) self.assertEqual(moderator.model_class, UserProfile) self.assertEqual(moderator.manager_names, ['objects']) self.assertEqual(moderator.moderation_manager_class, ModerationObjectsManager) self.assertEqual(moderator.auto_approve_for_staff, False) self.assertEqual(moderator.auto_approve_for_groups, ['admins', 'moderators']) self.assertEqual(moderator.auto_reject_for_groups, ['others']) def test_custom_message_backend_class(self): class CustomMessageBackend(BaseMessageBackend): def send(self, **kwargs): pass # silence is gold self.moderator.message_backend_class = CustomMessageBackend self.moderator.send( self.user, subject_template=('moderation/' 'notification_subject_moderator.txt'), message_template=('moderation/' 'notification_message_moderator.txt'), recipient_list=['*****@*****.**']) # because of the custom message backend self.assertEqual(len(mail.outbox), 0) def test_partial_custom_message_backend_class_raise_exception(self): class CustomMessageBackend(BaseMessageBackend): pass self.moderator.message_backend_class = CustomMessageBackend with self.assertRaises(NotImplementedError): self.moderator.send( self.user, subject_template=('moderation/' 'notification_subject_moderator.txt'), message_template=('moderation' '/notification_message_moderator.txt'), recipient_list=['*****@*****.**']) def test_wrong_message_backend_class_raise_exception(self): class WrongMessageBackend(object): pass self.moderator.message_backend_class = WrongMessageBackend with self.assertRaises(TypeError): self.moderator.send( self.user, subject_template=('moderation/' 'notification_subject_moderator.txt'), message_template=('moderation/' 'notification_message_moderator.txt'), recipient_list=['*****@*****.**']) def test_send_notification(self): self.moderator.send( self.user, subject_template='moderation/notification_subject_moderator.txt', message_template='moderation/notification_message_moderator.txt', recipient_list=['*****@*****.**']) self.assertEqual(len(mail.outbox), 1) def test_inform_moderator(self): self.moderator = GenericModerator(UserProfile) self.moderator.inform_moderator(self.user) self.assertEqual(len(mail.outbox), 1) def test_inform_user(self): self.moderator = GenericModerator(UserProfile) self.moderator.inform_user(self.user, self.user) self.assertEqual(len(mail.outbox), 1) def test_moderator_should_have_field_exclude(self): self.assertTrue(hasattr(self.moderator, 'fields_exclude'))