def test_query_by_equals_to_rating(self): """ Test return a lsit of suppliers with given rating. """ Supplier(supplierName="Walmart", address="NYC", averageRating=5, productIdList=['1', '2', '3']).save() Supplier(supplierName="Costco", address="SF", averageRating=2, productIdList=['1', '3', '4']).save() suppliers = Supplier.find_by_equals_to_rating(5) self.assertEqual(len(suppliers), 1) supplier = suppliers[0] self.assertEqual(supplier.supplierName, "Walmart") self.assertEqual(supplier.address, "NYC") self.assertEqual(supplier.averageRating, 5) self.assertEqual(supplier.productIdList, ['1', '2', '3']) suppliers = Supplier.find_by_equals_to_rating(2) self.assertEqual(len(suppliers), 1) supplier = suppliers[0] self.assertEqual(supplier.supplierName, "Costco") self.assertEqual(supplier.address, "SF") self.assertEqual(supplier.averageRating, 2) self.assertEqual(supplier.productIdList, ['1', '3', '4'])
def get(self): """ Returns all of the Suppliers """ app.logger.info('Request to list Suppliers...') suppliers = [] # args = supplier_args.parse_args() rating = request.args.get('rating') averageRating = request.args.get('averageRating') if rating: app.logger.info('Filtering by rating: %s', rating) suppliers = Supplier.find_by_rating(rating) if len(suppliers) == 0: return '', status.HTTP_400_BAD_REQUEST elif averageRating: app.logger.info('Filtering by rating: %s', averageRating) suppliers = Supplier.find_by_equals_to_rating(averageRating) if len(suppliers) == 0: return '', status.HTTP_400_BAD_REQUEST else: suppliers = Supplier.all() app.logger.info('[%s] suppliers returned', len(suppliers)) results = [json.loads(supplier.to_json()) for supplier in suppliers] return results, status.HTTP_200_OK