def test_approval_activity_stream(self): member = TeamMember(user=self.user, team=self.team, role=TeamMember.ROLE_MANAGER) member.save() add_moderation(self.video, self.team, self.user) v1 = self._create_versions(self.video.subtitle_language(), num_versions=1)[0] count = Action.objects.all().count() approve_version(v1, self.team, self.user) self.assertEquals(count + 1, Action.objects.all().count()) act = Action.objects.all().order_by("-created")[0] act.action_type == Action.APPROVE_VERSION
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_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 test_remove_moderation(self): reset_solr() add_moderation(self.video, self.team, self.user) lang = self.video.subtitle_language() [ self._make_subs(lang, 5) for x in xrange(0, 1)] self.assertEquals(self.team.get_pending_moderation().count(), 1) version = self.team.get_pending_moderation()[0] approve_version(version, self.team, self.user) self.assertEquals(self.team.get_pending_moderation().count(), 0) self._login(is_moderator=True) # dashboard should have no video to moderate form, results = _get_moderation_results(RequestMockup(self.user), self.team) self.assertEquals(0, results.count()) url = reverse("moderation:revision-remove-moderation", kwargs={"team_id":self.team.pk, "version_id":version.pk}) response = self.client.post(url, {}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') data = json.loads(response.content) self.assertEquals(response.status_code, 200) self.assertEquals(True, data["success"]) self.assertEquals(self.team.get_pending_moderation().count(), 1) # dashboard should have one video to moderate form, results = _get_moderation_results(RequestMockup(self.user), self.team) self.assertEquals(1, results.count()) reset_solr()
def test_moderated_subs_visibility(self): lang = self.video.subtitle_language() add_moderation(self.video, self.team, self.user) v0 = self._make_subs(lang, 5) self.assertEquals(v0.moderation_status , WAITING_MODERATION) approve_version(v0, self.team, self.user) v0 = SubtitleVersion.objects.get(pk=v0.pk) self.assertEquals(v0.moderation_status , APPROVED) lang = SubtitleLanguage.objects.get(pk=lang.pk) self.assertEquals(lang.version().pk, v0.pk) v1 = self._make_subs(lang, 5) lang = SubtitleLanguage.objects.get(pk=lang.pk) self.assertEquals(v1.moderation_status , WAITING_MODERATION) lang = SubtitleLanguage.objects.get(pk=lang.pk) version = lang.version() self.assertEquals(version, v0) approve_version(v1, self.team, self.user) v1 = SubtitleVersion.objects.get(pk=v1.pk) self.assertEquals(v1.moderation_status , APPROVED) lang = SubtitleLanguage.objects.get(pk=lang.pk) version = lang.version() self.assertEquals(version, v1)