コード例 #1
0
    def test_get_popular(self):
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)

        db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            user_id=self.user.id,
            text="Awesome",
            is_draft=False,
            license_id=self.license["id"],
        )

        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 1)

        review = db_review.create(
            user_id=self.user.id,
            entity_id="e7aad618-fa86-3983-9e77-405e21796ece",
            entity_type="release_group",
            text="Not Awesome",
            is_draft=False,
            license_id=self.license["id"],
            language="en",
        )
        db_review.set_hidden_state(review["id"], is_hidden=True)

        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 1)
        self.assertEqual(reviews[0]["is_hidden"], False)
コード例 #2
0
    def test_update(self):
        """Test if rating and count are updated when review is updated, deleted or hidden"""

        # Check avg_rating when review is created
        review = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            text=u"Testing!",
            rating=5,
            user_id=self.user.id,
            is_draft=False,
            license_id=self.license["id"],
        )
        review_2 = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            text=u"Testing!",
            rating=4,
            user_id=self.user_2.id,
            is_draft=False,
            license_id=self.license["id"],
        )
        avg_rating = db_avg_rating.get(review["entity_id"],
                                       review["entity_type"])
        self.assertEqual(avg_rating["entity_id"], review["entity_id"])
        self.assertEqual(avg_rating["entity_type"], review["entity_type"])
        self.assertEqual(avg_rating["rating"], 4.5)
        self.assertEqual(avg_rating["count"], 2)

        # Check if avg_rating is updated after review_2 is hidden
        db_review.set_hidden_state(review_2["id"], is_hidden=True)
        avg_rating = db_avg_rating.get(review["entity_id"],
                                       review["entity_type"])
        self.assertEqual(avg_rating["rating"], 5.0)
        self.assertEqual(avg_rating["count"], 1)

        # Check if avg_rating is updated after review_2 is revealed
        db_review.set_hidden_state(review_2["id"], is_hidden=False)
        avg_rating = db_avg_rating.get(review["entity_id"],
                                       review["entity_type"])
        self.assertEqual(avg_rating["rating"], 4.5)
        self.assertEqual(avg_rating["count"], 2)

        # Check if avg_rating is updated after change in rating
        db_review.update(
            review_id=review_2["id"],
            drafted=review_2["is_draft"],
            text=u"Testing rating update",
            rating=None,
        )

        avg_rating = db_avg_rating.get(review["entity_id"],
                                       review["entity_type"])
        self.assertEqual(avg_rating["rating"], 5.0)
        self.assertEqual(avg_rating["count"], 1)

        # Check if avg_rating is updated after a review with rating is deleted
        db_review.delete(review["id"])
        with self.assertRaises(db_exceptions.NoDataFoundException):
            db_avg_rating.get(review["entity_id"], review["entity_type"])
コード例 #3
0
    def test_get_popular(self):
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)

        # popular reviews should not contain reviews saved as drafts
        review = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            user_id=self.user.id,
            text="A draft",
            is_draft=True,
            license_id=self.license["id"],
        )

        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)

        # publishing the drafted review; now it should be in popular reviews
        db_review.update(
            review_id=review["id"],
            drafted=True,
            text=review["text"],
            rating=review["rating"],
            is_draft=False,
        )
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 1)
        self.assertEqual(reviews[0]["is_draft"], False)

        # A hidden review should not be in popular reviews
        db_review.set_hidden_state(review["id"], is_hidden=True)
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)
コード例 #4
0
    def test_get_popular(self):
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)

        # popular reviews should not contain reviews saved as drafts
        review = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            user_id=self.user.id,
            text="A draft",
            is_draft=True,
            license_id=self.license["id"],
        )

        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)

        # publishing the drafted review; now it should be in popular reviews
        db_review.update(
            review_id=review["id"],
            drafted=True,
            text=review["text"],
            rating=review["rating"],
            is_draft=False,
        )
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 1)
        self.assertEqual(reviews[0]["is_draft"], False)

        # A hidden review should not be in popular reviews
        db_review.set_hidden_state(review["id"], is_hidden=True)
        reviews = db_review.get_popular()
        self.assertEqual(len(reviews), 0)
コード例 #5
0
    def test_update(self):
        """Test if rating and count are updated when review is updated, deleted or hidden"""

        # Check avg_rating when review is created
        review = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            text=u"Testing!",
            rating=5,
            user_id=self.user.id,
            is_draft=False,
            license_id=self.license["id"],
        )
        review_2 = db_review.create(
            entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
            entity_type="release_group",
            text=u"Testing!",
            rating=4,
            user_id=self.user_2.id,
            is_draft=False,
            license_id=self.license["id"],
        )
        avg_rating = db_avg_rating.get(review["entity_id"], review["entity_type"])
        self.assertEqual(avg_rating["entity_id"], review["entity_id"])
        self.assertEqual(avg_rating["entity_type"], review["entity_type"])
        self.assertEqual(avg_rating["rating"], 4.5)
        self.assertEqual(avg_rating["count"], 2)

        # Check if avg_rating is updated after review_2 is hidden
        db_review.set_hidden_state(review_2["id"], is_hidden=True)
        avg_rating = db_avg_rating.get(review["entity_id"], review["entity_type"])
        self.assertEqual(avg_rating["rating"], 5.0)
        self.assertEqual(avg_rating["count"], 1)

        # Check if avg_rating is updated after review_2 is revealed
        db_review.set_hidden_state(review_2["id"], is_hidden=False)
        avg_rating = db_avg_rating.get(review["entity_id"], review["entity_type"])
        self.assertEqual(avg_rating["rating"], 4.5)
        self.assertEqual(avg_rating["count"], 2)

        # Check if avg_rating is updated after change in rating
        db_review.update(
            review_id=review_2["id"],
            drafted=review_2["is_draft"],
            text=u"Testing rating update",
            rating=None,
        )

        avg_rating = db_avg_rating.get(review["entity_id"], review["entity_type"])
        self.assertEqual(avg_rating["rating"], 5.0)
        self.assertEqual(avg_rating["count"], 1)

        # Check if avg_rating is updated after a review with rating is deleted
        db_review.delete(review["id"])
        with self.assertRaises(db_exceptions.NoDataFoundException):
            db_avg_rating.get(review["entity_id"], review["entity_type"])
コード例 #6
0
ファイル: test_review.py プロジェクト: jdaok/critiquebrainz
 def create_dummy_review(self, is_draft=False, is_hidden=False):
     review = db_review.create(
         entity_id="6b3cd75d-7453-39f3-86c4-1441f360e121",
         entity_type="release_group",
         user_id=self.user.id,
         text=self.review_text,
         rating=self.review_rating,
         is_draft=is_draft,
         license_id=self.license["id"],
     )
     if is_hidden:
         db_review.set_hidden_state(review["id"], is_hidden=True)
     return review
コード例 #7
0
 def test_set_hidden_state(self):
     review = db_review.create(
         user_id=self.user.id,
         entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
         entity_type="release_group",
         text="Awesome",
         is_draft=False,
         license_id=self.license["id"],
     )
     db_review.set_hidden_state(review["id"], is_hidden=True)
     review = db_review.get_by_id(review["id"])
     self.assertEqual(review["is_hidden"], True)
     db_review.set_hidden_state(review["id"], is_hidden=False)
     review = db_review.get_by_id(review["id"])
     self.assertEqual(review["is_hidden"], False)
コード例 #8
0
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)
コード例 #9
0
 def test_set_hidden_state(self):
     review = db_review.create(
         user_id=self.user.id,
         entity_id="e7aad618-fa86-3983-9e77-405e21796eca",
         entity_type="release_group",
         text="Awesome",
         is_draft=False,
         license_id=self.license["id"],
     )
     db_review.set_hidden_state(review["id"], is_hidden=True)
     review = db_review.get_by_id(review["id"])
     self.assertEqual(review["is_hidden"], True)
     db_review.set_hidden_state(review["id"], is_hidden=False)
     review = db_review.get_by_id(review["id"])
     self.assertEqual(review["is_hidden"], False)
コード例 #10
0
ファイル: review.py プロジェクト: pulkit6559/critiquebrainz
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)
コード例 #11
0
ファイル: review.py プロジェクト: shagun6/critiquebrainz
def unhide(id):
    review = get_review_or_404(id)
    db_review.set_hidden_state(review["id"], is_hidden=False)
    flash.success(gettext("Review is not hidden anymore."))
    return redirect(request.referrer
                    or url_for('user.reviews', user_id=current_user.id))