def test_creation(self): db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, user_id=self.user.id, action=ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs() self.assertEqual(count, 1) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
def unhide(id): review = get_review_or_404(id) if not review["is_hidden"]: flash.info(gettext("Review is not hidden.")) return redirect(url_for('.entity', id=review["id"])) form = AdminActionForm() if form.validate_on_submit(): db_review.set_hidden_state(review["id"], is_hidden=False) db_moderation_log.create(admin_id=current_user.id, action=AdminActions.ACTION_UNHIDE_REVIEW, reason=form.reason.data, review_id=review["id"]) flash.success(gettext("Review is not hidden anymore.")) return redirect(url_for('.entity', id=review["id"])) return render_template('log/action.html', review=review, form=form, action=AdminActions.ACTION_UNHIDE_REVIEW.value)
def test_list(self): # test logs for hiding review db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, review_id=self.review["id"], action=AdminActions.ACTION_HIDE_REVIEW, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 1) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"])) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_HIDE_REVIEW.value) # test logs for unhiding review db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, review_id=self.review["id"], action=AdminActions.ACTION_UNHIDE_REVIEW, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 2) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"])) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNHIDE_REVIEW.value) # test logs for blocking user db_moderation_log.create( admin_id=self.admin.id, reason="User to be blocked", user_id=self.user.id, action=AdminActions.ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 3) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value) # test logs for unblocking user db_moderation_log.create( admin_id=self.admin.id, reason="User to be unblocked", user_id=self.user.id, action=AdminActions.ACTION_UNBLOCK_USER, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 4) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNBLOCK_USER.value)
def hide(id): review = get_review_or_404(id) if review["is_hidden"]: flash.info(gettext("Review is already hidden.")) return redirect(url_for('.entity', id=review["id"])) form = AdminActionForm() if form.validate_on_submit(): db_review.set_hidden_state(review["id"], is_hidden=True) db_moderation_log.create(admin_id=current_user.id, action=ACTION_HIDE_REVIEW, reason=form.reason.data, review_id=review["id"]) review_reports, count = db_spam_report.list_reports(review_id=review["id"]) # pylint: disable=unused-variable for report in review_reports: db_spam_report.archive(report["user_id"], report["revision_id"]) flash.success(gettext("Review has been hidden.")) return redirect(url_for('.entity', id=review["id"])) return render_template('log/action.html', review=review, form=form, action=ACTION_HIDE_REVIEW)
def test_list(self): db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, review_id=self.review["id"], action=ACTION_HIDE_REVIEW, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 1) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) db_moderation_log.create( admin_id=self.admin.id, reason="User to be blocked", user_id=self.user.id, action=ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 2)
def unblock(user_id): user = db_users.get_by_id(user_id) if not user: raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id)) if not user['is_blocked']: flash.info(gettext("This account is not blocked.")) return redirect(url_for('user.reviews', user_id=user['id'])) form = AdminActionForm() if form.validate_on_submit(): db_users.unblock(user['id']) db_moderation_log.create(admin_id=current_user.id, action=AdminActions.ACTION_UNBLOCK_USER, reason=form.reason.data, user_id=user['id']) flash.success(gettext("This user account has been unblocked.")) return redirect(url_for('user.reviews', user_id=user['id'])) return render_template('log/action.html', user=user, form=form, action=AdminActions.ACTION_UNBLOCK_USER.value)
def block(user_id): user = db_users.get_by_id(user_id) if not user: raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id)) if user['is_blocked']: flash.info(gettext("This account is already blocked.")) return redirect(url_for('user.reviews', user_id=user['id'])) form = AdminActionForm() if form.validate_on_submit(): db_users.block(user['id']) db_moderation_log.create(admin_id=current_user.id, action=ACTION_BLOCK_USER, reason=form.reason.data, user_id=user['id']) flash.success(gettext("This user account has been blocked.")) return redirect(url_for('user.reviews', user_id=user['id'])) return render_template('log/action.html', user=user, form=form, action=ACTION_BLOCK_USER)
def test_list(self): # test logs for hiding review db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, review_id=self.review["id"], action=AdminActions.ACTION_HIDE_REVIEW, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 1) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"])) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_HIDE_REVIEW.value) # test logs for unhiding review db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, review_id=self.review["id"], action=AdminActions.ACTION_UNHIDE_REVIEW, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 2) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"])) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNHIDE_REVIEW.value) # test logs for blocking user db_moderation_log.create( admin_id=self.admin.id, reason="User to be blocked", user_id=self.user.id, action=AdminActions.ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 3) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value) # test logs for unblocking user db_moderation_log.create( admin_id=self.admin.id, reason="User to be unblocked", user_id=self.user.id, action=AdminActions.ACTION_UNBLOCK_USER, ) logs, count = db_moderation_log.list_logs(admin_id=self.admin.id) self.assertEqual(count, 4) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNBLOCK_USER.value)
def test_creation(self): # test log creation when no review_id and no user_id is given with self.assertRaises(ValueError) as err: db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, action=AdminActions.ACTION_HIDE_REVIEW, ) self.assertEqual(str(err.exception), "No review ID or user ID specified.") # test log creation for non existing action with self.assertRaises(ValueError) as err: db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, user_id=self.user.id, action="unknown_action", ) self.assertEqual(str(err.exception), "Please specify a valid action.") # test sample log creation for blocking user db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, user_id=self.user.id, action=AdminActions.ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs() self.assertEqual(count, 1) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value)
def test_creation(self): # test log creation when no review_id and no user_id is given with self.assertRaises(ValueError) as err: db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, action=AdminActions.ACTION_HIDE_REVIEW, ) self.assertEqual(str(err.exception), "No review ID or user ID specified.") # test log creation for non existing action with self.assertRaises(ValueError) as err: db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, user_id=self.user.id, action="unknown_action", ) self.assertEqual(str(err.exception), "Please specify a valid action.") # test sample log creation for blocking user db_moderation_log.create( admin_id=self.admin.id, reason=self.reason, user_id=self.user.id, action=AdminActions.ACTION_BLOCK_USER, ) logs, count = db_moderation_log.list_logs() self.assertEqual(count, 1) self.assertEqual(str(logs[0]["user"]["id"]), self.user.id) self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id) self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value)