def test_find_reviews(self): """Test that full-text search works on reviews. In addition to finding terms in a review's summary or body, we want to test that postgres is stemming and lowercasing the queries. """ # Check that postgres is stemming results1 = Review.find_reviews('A1', 'wasted') self.assertEqual(len(results1), 1) self.assertIn("waste of money", results1[0][1]) # Check that postgres is dealing with case results2 = Review.find_reviews('A2', 'trash') self.assertEqual(len(results2), 1) self.assertIn("monitor broke", results2[0][1])
def search_reviews(asin): search_query = request.args.get('query') reviews = Review.find_reviews(asin, search_query) user_id = None if "user" in session: user_id = session["user"]["id"] review_dict_list = format_reviews_to_dicts(reviews, user_id) return jsonify(review_dict_list[:10])
def search_reviews(asin): """Perform full-text search within product reviews. Returns the matching reviews via json to the front end. """ search_query = request.args.get('query') # Run full-text search within a product's reviews # Return a list of review tuples. reviews = Review.find_reviews(asin, search_query) user_id = None if "user" in session: user_id = session["user"]["id"] # Converts list of review tuples into a list of dictionaries review_dict_list = format_reviews_to_dicts(reviews, user_id) return jsonify(review_dict_list[:10])