Esempio n. 1
0
    def test_get_course_vouchers_for_learner_with_multiple_codes(self):
        """
        Verify that method "get_course_vouchers_for_learner" returns all valid
        coupon codes for the provided enterprise course.
        """
        catalog_id = 1
        coupon_quantity = 2
        coupon = self._create_course_catalog_coupon(catalog_id, coupon_quantity)
        expected_vouchers = coupon.attr.coupon_vouchers.vouchers.all()

        self.mock_access_token_response()
        self.mock_enterprise_learner_api(entitlement_id=coupon.id)
        self.mock_enterprise_learner_entitlements_api(entitlement_id=coupon.id)
        self.mock_catalog_contains_endpoint(
            discovery_api_url=self.site_configuration.discovery_api_url, catalog_id=catalog_id,
            course_run_ids=[self.course.id]
        )
        course_vouchers = get_course_vouchers_for_learner(self.request.site, self.request.user, self.course.id)

        # Verify that there were total three calls. Two for getting
        # enterprise learner data and enterprise learner entitlements
        # from enterprise service and one for checking course run against
        # the enterprise catalog from the discovery service.
        self._assert_num_requests(4)
        self.assertEqual(coupon_quantity, len(course_vouchers))
        self.assertListEqual(list(expected_vouchers), list(course_vouchers))
Esempio n. 2
0
    def test_get_course_vouchers_for_learner_with_multiple_codes(self):
        """
        Verify that method "get_course_vouchers_for_learner" returns all valid
        coupon codes for the provided enterprise course.
        """
        catalog_id = 1
        coupon_quantity = 2
        coupon = self._create_course_catalog_coupon(catalog_id, coupon_quantity)
        expected_vouchers = coupon.attr.coupon_vouchers.vouchers.all()

        catalog_query = '*:*'
        self.mock_enterprise_learner_api(entitlement_id=coupon.id)
        self.mock_enterprise_learner_entitlements_api(entitlement_id=coupon.id)
        self.mock_course_discovery_api_for_catalog_by_resource_id(catalog_id=catalog_id, catalog_query=catalog_query)
        self.mock_dynamic_catalog_contains_api(query=catalog_query, course_run_ids=[self.course.id])

        course_vouchers = get_course_vouchers_for_learner(self.request.site, self.request.user, self.course.id)

        # Verify that there were total four calls. two for getting
        # enterprise learner data and enterprise learner entitlements
        # from enterprise service and other two for
        # getting enterprise catalog and course runs against the enterprise
        # catalog query respectively from the course catalog service.
        self._assert_num_requests(4)
        self.assertEqual(coupon_quantity, len(course_vouchers))
        self.assertListEqual(list(expected_vouchers), list(course_vouchers))
Esempio n. 3
0
    def test_get_course_vouchers_for_learner_with_exception(self):
        """
        Verify that method "get_course_vouchers_for_learner" returns empty
        response if there is an error while accessing the enterprise learner
        API.
        """
        self.mock_enterprise_learner_api_for_failure()

        vouchers = get_course_vouchers_for_learner(self.request.site, self.request.user, self.course.id)
        self.assertIsNone(vouchers)
Esempio n. 4
0
    def test_get_course_vouchers_for_learner_with_multiple_codes(self):
        """
        Verify that method "get_course_vouchers_for_learner" returns all valid
        coupon codes for the provided enterprise course.
        """
        catalog_id = 1
        coupon_quantity = 2
        coupon = self._create_course_catalog_coupon(catalog_id,
                                                    coupon_quantity)
        expected_vouchers = coupon.attr.coupon_vouchers.vouchers.all()

        catalog_query = '*:*'
        self.mock_enterprise_learner_api(entitlement_id=coupon.id)
        self.mock_course_discovery_api_for_catalog_by_resource_id(
            catalog_id=catalog_id, catalog_query=catalog_query)
        self.mock_dynamic_catalog_contains_api(query=catalog_query,
                                               course_run_ids=[self.course.id])

        course_vouchers = get_course_vouchers_for_learner(
            self.request.site, self.request.user, self.course.id)
        self._assert_num_requests(3)
        self.assertEqual(coupon_quantity, len(course_vouchers))
        self.assertListEqual(list(expected_vouchers), list(course_vouchers))