Ejemplo n.º 1
0
    def test_get_applicable_discounts(self):
        discounts = [{
            'item': 'ITEM_CODE',
            'base_quantity': 1,
            'max_quantity': 2,
            'free_items': 1,
            'type': 'FREE',
        }]
        client = Client(currency='EUR')
        client.discounts = discounts
        client.cart = {
            'ITEM_CODE': 100,
        }

        returned_discounts = client.get_applicable_discounts()

        assert len(returned_discounts) == 1
        assert returned_discounts[0]['item'] == discounts[0]['item']
        assert returned_discounts[0]['base_quantity'] == discounts[0][
            'base_quantity']
        assert returned_discounts[0]['max_quantity'] == discounts[0][
            'max_quantity']
        assert returned_discounts[0]['free_items'] == discounts[0][
            'free_items']
        assert returned_discounts[0]['type'] == discounts[0]['type']
Ejemplo n.º 2
0
    def test_get_applicable_discounts_not_min_condition_reach(self):
        discounts = [{
            'item': 'ITEM_CODE',
            'base_quantity': 3,
            'max_quantity': 4,
            'free_items': 1,
            'type': 'FREE',
        }]
        client = Client(currency='EUR')
        client.discounts = discounts
        client.cart = {
            'ITEM_CODE': 1,
        }

        returned_discounts = client.get_applicable_discounts()

        assert len(returned_discounts) == 0
Ejemplo n.º 3
0
    def test_get_applicable_discounts_with_not_existing_discount(self):
        discounts = [{
            'item': 'ITEM_CODE',
            'base_quantity': 1,
            'max_quantity': 2,
            'free_items': 1,
            'type': 'FREE',
        }]
        client = Client(currency='EUR')
        client.discounts = discounts
        client.cart = {
            'ITEM_CODE_2': 100,
        }

        returned_discounts = client.get_applicable_discounts()

        assert len(returned_discounts) == 0