Exemple #1
0
    def test_check_condition_applicability_free_basket(self):
        """
        Validate check_condition_applicability decorator returns False if the basket is free.
        """
        basket = create_basket(self.user, self.site, price='0.00')

        self.assertFalse(check_condition_applicability()(
            self.condition.is_satisfied)(self.condition, self.offer, basket))
Exemple #2
0
    def test_check_condition_applicability_empty_basket(self):
        """
        Validate check_condition_applicability decorator returns False if the basket is empty.
        """
        basket = create_basket(self.user, self.site, empty=True)

        self.assertFalse(check_condition_applicability()(
            self.condition.is_satisfied)(self.condition, self.offer, basket))
Exemple #3
0
    def test_check_condition_applicability_site_mismatch(self):
        """
        Validate check_condition_applicability decorator returns False if the offer site and basket site do not match.
        """
        basket = create_basket(self.user, SiteConfigurationFactory().site)

        self.assertFalse(check_condition_applicability()(
            self.condition.is_satisfied)(self.condition, self.offer, basket))
Exemple #4
0
    def test_check_condition_applicability(self, mock_is_satisfied):
        """
        Validate check_condition_applicability decorator returns True if it is applicable.
        """
        mock_is_satisfied.return_value = True
        mock_is_satisfied.__name__ = 'is_satisfied'
        basket = create_basket(self.user, self.site)

        self.assertTrue(check_condition_applicability()(
            self.condition.is_satisfied)(self.condition, self.offer, basket))
Exemple #5
0
    def test_check_condition_applicability_switch_inactive(self):
        """
        Validate check_condition_applicability decorator returns False if the specified switch is inactive.
        """
        basket = create_basket(self.user, self.site)
        switch = 'fake_switch'
        Switch.objects.update_or_create(name=switch, defaults={'active': False})

        self.assertFalse(
            check_condition_applicability([switch])(self.condition.is_satisfied)(self.condition, self.offer, basket)
        )
Exemple #6
0
    def test_check_condition_applicability_switch_active(self, mock_is_satisfied):
        """
        Validate check_condition_applicability decorator returns False if the specified switch is active.
        """
        mock_is_satisfied.return_value = True
        mock_is_satisfied.__name__ = 'is_satisfied'
        basket = create_basket(self.user, self.site)
        switch = 'fake_switch'
        Switch.objects.update_or_create(name=switch, defaults={'active': True})

        self.assertTrue(
            check_condition_applicability([switch])(self.condition.is_satisfied)(self.condition, self.offer, basket)
        )