def test_pending_count_after_removal(self): tv = self.team.teamvideo_set.all()[0] add_moderation(tv.video, tv.team, self.user) self.assertEquals(tv.team.get_pending_moderation().count() , 0) self._create_versions( tv.video.subtitle_language(), num_versions=2) self.assertEquals(tv.team.get_pending_moderation().count(), 2) remove_moderation(tv.video, tv.team, self.user) self.assertEquals(tv.team.get_pending_moderation().count(), 0)
def test_remove_moderation_simple(self): TeamMember(user=self.user, team=self.team, role=TeamMember.ROLE_MANAGER).save() self.assertFalse(self.video.moderated_by) add_moderation(self.video, self.team, self.user) self.video = Video.objects.get(pk=self.video.pk) self.assertTrue(self.video.moderated_by) remove_moderation(self.video, self.team, self.user) self.video = Video.objects.get(pk=self.video.pk) self.assertFalse(self.video.moderated_by)
def test_last_version_never_rejected(self): tv = self.team.teamvideo_set.all()[0] add_moderation(tv.video, tv.team, self.user) self.assertEquals(tv.team.get_pending_moderation().count() , 0) versions = self._create_versions( tv.video.subtitle_language(), num_versions=2) approve_version(versions[1], tv.team, self.user) remove_moderation(tv.video, tv.team, self.user) version = refresh_obj(versions[0]) self.assertEquals(version.moderation_status , UNMODERATED) version = refresh_obj(versions[1]) self.assertEquals(version.moderation_status , UNMODERATED)
def test_remove__moderation_only_for_members(self): member = TeamMember(user=self.user, team=self.team, role=TeamMember.ROLE_MANAGER) member.save() add_moderation(self.video, self.team, self.user) member.role = TeamMember.ROLE_MEMBER member.save() e = None self.assertRaises(SuspiciousOperation, remove_moderation, *(self.video, self.team, self.user)) member.role = TeamMember.ROLE_MANAGER member.save() remove_moderation(self.video, self.team, self.user) self.video = Video.objects.get(pk=self.video.pk) self.assertFalse(self.video.moderated_by)
def test_on_unmoderation_rejected_never_last(self): tv = self.team.teamvideo_set.all()[0] add_moderation(tv.video, tv.team, self.user) self.assertEquals(tv.team.get_pending_moderation().count() , 0) versions = self._create_versions( tv.video.subtitle_language(), num_versions=2) v0_subs_text = versions[0].subtitles()[0].text v1_subs_text = versions[1].subtitles()[0].text approve_version(versions[0], tv.team, self.user) num_versions = SubtitleVersion.objects.filter(language__video=tv.video).count() reject_version(versions[1], tv.team, self.user, None, self.user2) # we should roll back self.assertEquals(SubtitleVersion.objects.filter(language__video=tv.video).count(),num_versions +1) self.assertEquals( tv.video.subtitle_language().latest_version(), versions[0]) remove_moderation(tv.video, tv.team, self.user) # the last one must be v0 -> the one approved self.assertEquals(tv.video.subtitle_language().latest_version().subtitles()[0].text , v0_subs_text)
def save(self, *args, **kwargs): obj = super(EditTeamVideoForm, self).save(*args, **kwargs) video = obj.video team = obj.team if feature_is_on("MODERATION"): if self.should_add_moderation: try: add_moderation(video, team, self.user) except Exception ,e: raise self._errors["should_moderate"] = [e] elif self.should_remove_moderation: try: remove_moderation(video, team, self.user) except Exception ,e: raise self._errors["should_moderate"] = [e]