Esempio n. 1
0
    def test_get_course_entitlements_for_learner_with_unavailable_course(self):
        """
        Verify that method "get_course_entitlements_for_learner" returns empty
        response for entitlements if the provided course id is not available
        in the related enterprise course catalog.
        """
        enterprise_catalog_id = 1
        self.mock_access_token_response()
        self.mock_enterprise_learner_api(entitlement_id=enterprise_catalog_id)
        self.mock_enterprise_learner_entitlements_api(entitlement_id=enterprise_catalog_id)
        self.mock_catalog_contains_endpoint(
            discovery_api_url=self.site_configuration.discovery_api_url, catalog_id=enterprise_catalog_id,
            course_run_ids=[self.course.id]
        )

        non_enterprise_course = CourseFactory(id='edx/Non_Enterprise_Course/DemoX')
        entitlements = get_course_entitlements_for_learner(
            self.request.site, self.request.user, non_enterprise_course
        )
        # Verify that there were total two calls. First for getting
        # enterprise learner data from enterprise service and other one for
        # checking course run against the enterprise catalog query from the
        # discovery service.
        self._assert_num_requests(3)
        self.assertIsNone(entitlements)
Esempio n. 2
0
    def _assert_get_course_entitlements_for_learner_response(
            self, expected_entitlements, log_level, log_message):
        """
        Helper method to validate the response from the method
        "get_course_entitlements_for_learner" and verify the logged message.
        """
        logger_name = 'ecommerce.enterprise.entitlements'
        with LogCapture(logger_name) as logger:
            entitlements = get_course_entitlements_for_learner(
                self.request.site, self.request.user, self.course.id)
            self._assert_num_requests(1)

            logger.check((logger_name, log_level, log_message))
            self.assertEqual(expected_entitlements, entitlements)
Esempio n. 3
0
    def test_get_course_entitlements_for_learner_with_unavailable_course(self):
        """
        Verify that method "get_course_entitlements_for_learner" returns empty
        response for entitlements if the provided course id is not available
        in the related enterprise course catalog.
        """
        enterprise_catalog_id = 1
        catalog_query = '*:*'
        self.mock_enterprise_learner_api(entitlement_id=enterprise_catalog_id)
        self.mock_enterprise_learner_entitlements_api(entitlement_id=enterprise_catalog_id)
        self.mock_course_discovery_api_for_catalog_by_resource_id(catalog_query=catalog_query)
        self.mock_dynamic_catalog_contains_api(query=catalog_query, course_run_ids=[self.course.id])

        non_enterprise_course = CourseFactory(id='edx/Non_Enterprise_Course/DemoX')
        entitlements = get_course_entitlements_for_learner(
            self.request.site, self.request.user, non_enterprise_course
        )
        # Verify that there were total three calls. First for getting
        # enterprise learner data 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(3)
        self.assertIsNone(entitlements)