Ejemplo n.º 1
0
    def test_expired_access_token(self):
        expired_token_response_body = {
            "expires_in": 0,
            "access_token": self.access_token
        }
        responses.add(responses.POST,
                      self.url_base + self.oauth_api_path,
                      json=expired_token_response_body,
                      status=200)

        responses.add(responses.POST,
                      self.url_base + self.oauth_api_path,
                      json=self.expected_token_response_body,
                      status=200)

        expected_course_response_body = self.content_payload
        expected_course_response_body[
            "@odata.context"] = "$metadata#OcnCourses/$entity"

        responses.add(responses.POST,
                      self.url_base + self.course_api_path,
                      json=expected_course_response_body,
                      status=200)

        sap_client = SAPSuccessFactorsAPIClient(self.enterprise_config)
        sap_client.create_content_metadata(self.content_payload)
        assert len(responses.calls) == 3
        assert responses.calls[
            0].request.url == self.url_base + self.oauth_api_path
        assert responses.calls[
            1].request.url == self.url_base + self.oauth_api_path
        assert responses.calls[
            2].request.url == self.url_base + self.course_api_path
Ejemplo n.º 2
0
    def test_expired_access_token(self):
        """
           If our token expires after some call, make sure to get it again.

           Make a call, have the token expire after waiting some time (technically no time since time is frozen),
           and make a call again and notice 2 OAuth calls in total are required.
        """
        expired_token_response_body = {"expires_in": 0, "access_token": self.access_token}
        responses.add(
            responses.POST,
            self.url_base + self.oauth_api_path,
            json=expired_token_response_body,
            status=200
        )
        expected_course_response_body = self.content_payload
        expected_course_response_body["@odata.context"] = "$metadata#OcnCourses/$entity"

        responses.add(
            responses.POST,
            self.url_base + self.course_api_path,
            json=expected_course_response_body,
            status=200
        )

        sap_client = SAPSuccessFactorsAPIClient(self.enterprise_config)
        sap_client.create_content_metadata(self.content_payload)
        sap_client.create_content_metadata(self.content_payload)
        assert len(responses.calls) == 4
        assert responses.calls[0].request.url == self.url_base + self.oauth_api_path
        assert responses.calls[1].request.url == self.url_base + self.course_api_path
        assert responses.calls[2].request.url == self.url_base + self.oauth_api_path
        assert responses.calls[3].request.url == self.url_base + self.course_api_path
Ejemplo n.º 3
0
    def test_sap_api_connection_error(self):
        """
        ``create_content_metadata`` should raise ClientError when API request fails with a connection error.
        """
        responses.add(responses.POST,
                      self.url_base + self.oauth_api_path,
                      json=self.expected_token_response_body,
                      status=200)

        expected_course_response_body = self.content_payload
        expected_course_response_body[
            "@odata.context"] = "$metadata#OcnCourses/$entity"

        responses.add(responses.POST,
                      self.url_base + self.course_api_path,
                      body=requests.exceptions.RequestException())

        with raises(ClientError):
            sap_client = SAPSuccessFactorsAPIClient(self.enterprise_config)
            sap_client.create_content_metadata(self.content_payload)