コード例 #1
0
ファイル: mixins.py プロジェクト: nadheemabdulla/ecommerce
 def prepare_enterprise_offer(self,
                              percentage_discount_value=100,
                              enterprise_customer_name=None):
     benefit = EnterprisePercentageDiscountBenefitFactory(
         value=percentage_discount_value)
     if enterprise_customer_name is not None:
         condition = EnterpriseCustomerConditionFactory(
             enterprise_customer_name=enterprise_customer_name)
     else:
         condition = EnterpriseCustomerConditionFactory()
     enterprise_offer = EnterpriseOfferFactory(partner=self.partner,
                                               benefit=benefit,
                                               condition=condition)
     self.mock_enterprise_learner_api(
         learner_id=self.user.id,
         enterprise_customer_uuid=str(condition.enterprise_customer_uuid),
         course_run_id=self.course_run.id,
     )
     self.mock_catalog_contains_course_runs(
         [self.course_run.id],
         condition.enterprise_customer_uuid,
         enterprise_customer_catalog_uuid=condition.
         enterprise_customer_catalog_uuid,
     )
     return enterprise_offer
コード例 #2
0
    def test_get_enterprise_customer_from_enterprise_offer(self, discount_value):
        """
        Verify that "get_enterprise_customer_from_enterprise_offer" returns `None` if expected conditions are not met.
        """
        course = CourseFactory(name='EnterpriseConsentErrorTest', partner=PartnerFactory())
        product = course.create_or_update_seat('verified', False, 50)

        benefit = EnterprisePercentageDiscountBenefitFactory(value=discount_value)
        offer = EnterpriseOfferFactory(benefit=benefit)
        # set wrong priority to invalidate the condition in util
        offer.priority = 111

        self.mock_enterprise_learner_api(
            learner_id=self.learner.id,
            enterprise_customer_uuid=str(offer.condition.enterprise_customer_uuid),
            course_run_id=course.id,
        )

        self.mock_catalog_contains_course_runs(
            [course.id],
            str(offer.condition.enterprise_customer_uuid),
            enterprise_customer_catalog_uuid=str(offer.condition.enterprise_customer_catalog_uuid),
            contains_content=True,
        )

        basket = BasketFactory(site=self.site, owner=self.create_user())
        basket.add_product(product)
        basket.strategy = DefaultStrategy()
        Applicator().apply_offers(basket, [offer])

        self.assertIsNone(get_enterprise_customer_from_enterprise_offer(basket))
コード例 #3
0
ファイル: mixins.py プロジェクト: shivajeesharma/ecommerce
 def _create_enterprise_offer():
     """
     Return the enterprise offer.
     """
     return ConditionalOfferFactory.create(
         benefit_id=EnterprisePercentageDiscountBenefitFactory.create().id,
         condition_id=EnterpriseCustomerConditionFactory.create().id,
     )
コード例 #4
0
 def prepare_enterprise_offer(self, percentage_discount_value=100):
     Switch.objects.update_or_create(name=ENTERPRISE_OFFERS_SWITCH, defaults={'active': True})
     benefit = EnterprisePercentageDiscountBenefitFactory(value=percentage_discount_value)
     condition = EnterpriseCustomerConditionFactory()
     EnterpriseOfferFactory(partner=self.partner, benefit=benefit, condition=condition)
     self.mock_enterprise_learner_api(
         learner_id=self.user.id,
         enterprise_customer_uuid=str(condition.enterprise_customer_uuid),
         course_run_id=self.course_run.id,
     )
     self.mock_catalog_contains_course_runs(
         [self.course_run.id],
         condition.enterprise_customer_uuid,
         enterprise_customer_catalog_uuid=condition.enterprise_customer_catalog_uuid,
     )