def create_reviews(user, business): reviews = [] review = Review.create(user.id, business, 1, 'This is not good.', tags=['hello', 'world']) reviews.append(review) review = Review.create(user.id, business, 1, 'This is also not good.', tags=['hello', 'example']) reviews.append(review) review = Review.create(user.id, business, 5, 'This is awesome.', tags=['awesome']) reviews.append(review) return reviews
def test_reviews(self): review = Review.create(self.user.id, self.business, 1, 'This is a review', tags=['hello', 'world']) self.created_ids.append(review.id) review = Review.create(self.user.id, self.business, 5, 'This is a another review', tags=['hello', 'something']) self.created_ids.append(review.id) self.business = Business.get_by_id(self.business.id) self.assertTrue(self.business.rating == 3) self.assertTrue('hello' in self.business.tags) self.assertTrue('world' in self.business.tags) self.assertTrue('something' in self.business.tags) review.delete() self.business = Business.get_by_id(self.business.id) self.assertTrue(self.business.rating == 1) self.assertFalse('something' in self.business.tags) review = Review.create(self.user.id, self.business, 5, 'This is a another review', tags=['hello', 'something']) self.created_ids.append(review.id)
def reviews_post(request): """ creates new business review **authentication required with access_token** errors ====== * status 400 - if failed to create business returns ======= :: { "id": "" } """ business_id = request.matchdict['business_id'] business = Business.get_by_id(business_id) user = request.validated['user'] text = request.validated['text'] rating = request.validated['rating'] tags = request.validated['tags'] if tags: tags = tags.split(':') else: tags = [] if business and user: review = Review.create(user.id, business, rating, text, tags) response_body = { 'id': review.id, } # kill cache cache_key = 'business:{}*'.format(business.id) redis_cache.delete_pattern(cache_key) else: logger.debug('Failed to create review for business:{}'.format(business_id)) request.response.status_int = 400 response_body = { 'status': 'error', 'message': 'failed to create review for business' } request.response.body = json.dumps(response_body, cls=ComplexEncoder) request.response.content_type = 'application/json' return request.response