コード例 #1
0
ファイル: service.py プロジェクト: Mirage30/suppliers
    def get(self):
        """ Returns all of the suppliers """
        app.logger.info('Request to list Suppliers...')

        name = request.args.get('name')
        is_active = request.args.get('is_active')
        rating = request.args.get('rating')
        product_id = request.args.get('product_id')
        like_count = request.args.get('like_count')

        if name:
            app.logger.info('Find suppliers by name: %s', name)
            suppliers = Supplier.find_by_name(name)
        elif like_count:
            app.logger.info('Find suppliers with rating greater than: %s',
                            rating)
            like_count = int(like_count)
            suppliers = Supplier.find_by_greater("like_count", like_count)
        elif is_active:
            app.logger.info('Find suppliers by is_active: %s', is_active)
            is_active = (is_active == 'true')
            suppliers = Supplier.find_by_is_active(is_active)
        elif rating:
            app.logger.info('Find suppliers with rating greater than: %s',
                            rating)
            rating = float(rating)
            suppliers = Supplier.find_by_greater("rating", rating)
        elif product_id:
            app.logger.info(
                'Find suppliers containing product with id %s in their products',
                product_id)
            product_id = int(product_id)
            suppliers = [
                supplier for supplier in Supplier.all()
                if product_id in supplier.products
            ]
        else:
            app.logger.info('Find all suppliers')
            suppliers = Supplier.all()

        app.logger.info('[%s] Suppliers returned', len(suppliers))
        results = [supplier.serialize() for supplier in suppliers]
        app.logger.info("Returning %d suppliers", len(results))
        return results, status.HTTP_200_OK
コード例 #2
0
ファイル: test_models.py プロジェクト: Mirage30/suppliers
 def test_find_by_rating(self):
     """ Find a Supplier by Rating """
     Supplier("supplier1", 2, True, [1, 2, 3], 8.5).save()
     Supplier("supplier2", 4, False, [1, 3, 5, 7], 6.5).save()
     Supplier("supplier3", 6, False, [1, 3, 5], 7.2).save()
     Supplier("supplier4", 8, True, [1, 2, 5], 4.5).save()
     suppliers = Supplier.find_by_greater("rating", 4.2)
     self.assertEqual(len(suppliers), 4)
     suppliers = Supplier.find_by_greater("rating", 7)
     self.assertEqual(len(suppliers), 2)
     suppliers = Supplier.find_by_greater("rating", 8.6)
     self.assertEqual(len(suppliers), 0)
     suppliers = Supplier.find_by_greater("rating", 7.2)
     self.assertEqual(len(suppliers), 1)
     self.assertEqual(suppliers[0].name, "supplier1")
     self.assertEqual(suppliers[0].like_count, 2)
     self.assertEqual(suppliers[0].is_active, True)
     self.assertEqual(suppliers[0].products, [1, 2, 3])
     self.assertEqual(suppliers[0].rating, 8.5)