示例#1
0
def review_item(item_id):
    item = Item.query.get(item_id)
    buyer = User.query.get(current_user.id)
    form = ReviewForm()
    if form.validate_on_submit():
        review = Review(title = form.title.data, body = form.body.data, rating = form.rating.data)
        db.session.add(review)
        db.session.commit()
        review.add_review(buyer, item)
        total = 0
        for i in item.reviews:
            total += i.rating
        item.rating = (total / item.reviews.count())
        db.session.commit()
        flash('Your review has been recorded.')
        return redirect('/clear_search')
    return render_template('review.html', title='Review Item', form=form)
示例#2
0
    def test_review(self):
        seller = User(username="******",
                      email="*****@*****.**",
                      first_name="SellerFirst",
                      last_name="SellerLast",
                      address="Seller Address",
                      card_number="1111111111111111",
                      security_code="111",
                      is_seller=True)
        seller.set_password('Seller')
        db.session.add(seller)
        db.session.commit()
        item = Item(item_name='Test item',
                    item_description='Test description',
                    initial_supply=10,
                    num_available=10,
                    seller_id=1,
                    price=10.00)
        db.session.add(item)
        db.session.commit()
        buyer = User(username="******",
                     email="*****@*****.**",
                     first_name="BuyerFirst",
                     last_name="BuyerLast",
                     address="Buyer Address",
                     card_number="2222222222222222",
                     security_code="222",
                     is_seller=False)
        buyer.set_password("Buyer")
        db.session.add(buyer)
        db.session.commit()
        review = Review(title='Test review',
                        body='This is a test review for a test item!',
                        rating=4)
        db.session.add(review)
        db.session.commit()

        #self.assertEqual(review.item_id, item.id)
        #self.assertEqual(review.user_id, buyer.id)
        self.assertEqual(review.title, 'Test review')
        self.assertEqual(review.body, 'This is a test review for a test item!')
        self.assertEqual(review.rating, 4)

        self.assertEqual(item.reviews.all(), [])
        self.assertEqual(buyer.reviews.all(), [])
        self.assertFalse(review in item.reviews)
        self.assertFalse(review in buyer.reviews)
        review.add_review(buyer, item)

        self.assertEqual(item.reviews.count(), 1)
        self.assertEqual(buyer.reviews.count(), 1)
        self.assertEqual(item.reviews.first().title, 'Test review')
        self.assertEqual(item.reviews.first().body,
                         'This is a test review for a test item!')
        self.assertEqual(item.reviews.first().item_id, item.id)
        self.assertEqual(item.reviews.first().user_id, buyer.id)
        self.assertEqual(item.reviews.first().rating, 4)

        self.assertEqual(buyer.reviews.first().title, 'Test review')
        self.assertEqual(buyer.reviews.first().body,
                         'This is a test review for a test item!')
        self.assertEqual(buyer.reviews.first().item_id, item.id)
        self.assertEqual(buyer.reviews.first().user_id, buyer.id)
        self.assertEqual(buyer.reviews.first().rating, 4)

        self.assertEqual(seller.items.first().reviews.first().title,
                         'Test review')
        self.assertEqual(seller.items.first().reviews.first().body,
                         'This is a test review for a test item!')
        self.assertEqual(seller.items.first().reviews.first().item_id, item.id)
        self.assertEqual(seller.items.first().reviews.first().user_id,
                         buyer.id)
        self.assertEqual(seller.items.first().reviews.first().rating, 4)