def test_products(self):
        shop = models.Shop('shop-id', 'shop-name', 1, 2)
        shop2 = models.Shop('shop-id-2', 'shop-name-2', 5, 10)
        # generate some products for `shop`
        for i in range(1, 10, 2):
            models.Product('product-id-%d' % i, shop.id, 'product-title',
                           .1 * i, 10)

        # generate some products for `shop2`
        for i in range(2, 11, 2):
            models.Product('product-id-%d' % i, shop2.id, 'product-title',
                           .1 * i, 10)

        products = utils._find_best_products(models.Shops.values(), 3)

        assert products == [
            models.Products['product-id-10'],
            models.Products['product-id-9'],
            models.Products['product-id-8'],
        ]
Exemple #2
0
    def test_attributes(self):
        product = models.Product('product-id', 'shop-id', 'product-title', .8, 10)

        assert product.id == 'product-id'
        assert product.shop_id == 'shop-id'
        assert product.title == 'product-title'
        assert product.popularity == .8
        assert product.quantity == 10

        with pytest.raises(KeyError) as exc:
            product.shop

        assert "KeyError: 'shop-id'" in str(exc)
Exemple #3
0
    def test_returns(self, get):
        shop = models.Shop('shop-id', 'shop-name', 59.33258, 18.0649)
        product = models.Product('product-id', shop.id, 'product-title', .8, 10)
        tag = models.Tag('tag-id', 'trousers')
        tagging = models.Tagging('tagging-id', shop.id, tag.id)

        response = get('%s?%s' % (
            self.endpoint,
            'count=10&radius=500&position[lat]=59.33258&position[lng]=18.0649&tags=trousers&tags=shirts'
        ))

        assert response.status_code == 200
        assert 'products' in response.json
        assert response.json['products'] == [
            {
                'shop': {'lat': 59.33258, 'lng': 18.0649},
                'title': 'product-title',
                'popularity': .8,
            }
        ]
Exemple #4
0
    def test_products(self, tagging):
        shop = models.Shop('shop-id', 'shop-name', 1, 2)
        product = models.Product('product-id', 'shop-id', 'product-title', .8, 10)

        assert shop.products == [product]
Exemple #5
0
    def test_aggregator(self):
        product = models.Product('product-id', 'shop-id', 'product-title', .8, 10)

        assert models.Products['product-id'] == product
        assert models.Products['shop_id']['shop-id'] == [product]
Exemple #6
0
    def test_shop(self):
        product = models.Product('product-id', 'shop-id', 'product-title', .8, 10)
        shop = models.Shop('shop-id', 'shop-name', 1, 2)

        assert product.shop == shop
Exemple #7
0
def product():
    return models.Product('product-id', 'shop-id', 'product-title', 0.8, 10)