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)
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)