コード例 #1
0
    def test_preflight_request_failed(self, prepare, _):
        response = _response()
        response.ok = False
        response.status_code = 404
        response.reason = "Not Found"
        response.headers = {
            'Content-Type': 'text/plain; charset=utf-8',
            'Content-Length': '19',
            'X-Content-Type-Options': 'nosniff',
            'Date': 'Mon, 04 Feb 2019 15:26:29 GMT'
        }
        prepare.return_value = (_request(), [])
        session = mock.MagicMock()
        session.send.return_value = response
        request = _request(url="http://example.com/",
                           headers={"Content-Type": "application/json"},
                           method="POST")

        with self.assertRaises(errors.AccessControlError) as context:
            requests.send(request, session)

        expected_message = "Pre-flight check failed. Response status: %s: %s, Headers: %s" % (
            response.status_code, response.reason, response.headers)

        self.assertEqual(str(context.exception), expected_message)
コード例 #2
0
    def test_preflight_checks_fail(self, prepare, _):
        check_a = mock.MagicMock()
        check_b = mock.MagicMock(side_effect=errors.AccessControlError("foo"))
        prepare.return_value = (_request(), [check_a, check_b])
        request = _request()

        with self.assertRaises(errors.AccessControlError) as context:
            requests.send(request, _session())
            self.assertTrue(check_b.call_count > 0)

        self.assertEqual(str(context.exception), "foo")
        self.assertEqual(check_a.call_count, 1)
コード例 #3
0
ファイル: requests_tests.py プロジェクト: masuka/python-cors
    def test_preflight_checks_fail(self, prepare, _):
        check_a = mock.MagicMock()
        check_b = mock.MagicMock(side_effect=errors.AccessControlError("foo"))
        prepare.return_value = (_request(), [check_a, check_b])
        request = _request()

        with self.assertRaises(errors.AccessControlError) as context:
            requests.send(request, _session())
            self.assertTrue(check_b.call_count > 0)

        self.assertEqual(context.exception.message, "foo")
        self.assertEqual(check_a.call_count, 1)
コード例 #4
0
    def test_preflight_request_failed(self, prepare, _):
        response = _response()
        response.ok = False
        prepare.return_value = (_request(), [])
        session = mock.MagicMock()
        session.send.return_value = response
        request = _request(url="http://example.com/",
                           headers={"Content-Type": "application/json"},
                           method="POST")

        with self.assertRaises(errors.AccessControlError) as context:
            requests.send(request, session)

        self.assertEqual(context.exception.message, "Pre-flight check failed")
コード例 #5
0
ファイル: requests_tests.py プロジェクト: masuka/python-cors
    def test_preflight_request_failed(self, prepare, _):
        response = _response()
        response.ok = False
        prepare.return_value = (_request(), [])
        session = mock.MagicMock()
        session.send.return_value = response
        request = _request(
            url="http://example.com/",
            headers={"Content-Type": "application/json"},
            method="POST")

        with self.assertRaises(errors.AccessControlError) as context:
            requests.send(request, session)

        self.assertEqual(context.exception.message, "Pre-flight check failed")
コード例 #6
0
    def test_no_preflight_needed(self, prepare):
        prepare.return_value = (None, [])
        request = _request()

        response = requests.send(request, _session())

        self.assertIsInstance(response.headers, utils.ProtectedHTTPHeaders)
コード例 #7
0
ファイル: requests_tests.py プロジェクト: masuka/python-cors
    def test_no_preflight_needed(self, prepare):
        prepare.return_value = (None, [])
        request = _request()

        response = requests.send(request, _session())

        self.assertIsInstance(response.headers, utils.ProtectedHTTPHeaders)
コード例 #8
0
    def test_successful_request(self, prepare, _):
        check = mock.MagicMock()
        preflight_request = _request()
        prepare.return_value = (preflight_request, [check])
        request = _request()
        session = _session()

        response = requests.send(request, session)

        self.assertEqual(session.send.call_count, 2)
        self.assertEqual(response, request._response)
コード例 #9
0
ファイル: requests_tests.py プロジェクト: masuka/python-cors
    def test_successful_request(self, prepare, _):
        check = mock.MagicMock()
        preflight_request = _request()
        prepare.return_value = (preflight_request, [check])
        request = _request()
        session = _session()

        response = requests.send(request, session)

        self.assertEqual(session.send.call_count, 2)
        self.assertEqual(response, request._response)
コード例 #10
0
    def test_send_with_expected_server_error(self, prepare, _):
        check = preflight.check_headers
        prepare.return_value = (None, [check])
        request = _request()
        request._response = _response()
        request._response.status_code = 500
        request._response.headers["Access-Control-Allow-Headers"] = "foo"
        session = _session()

        response = requests.send(request,
                                 session,
                                 skip_checks_on_server_error=True)

        self.assertEqual(response.status_code, 500)
        self.assertNotIn("Content-Type",
                         response.headers["Access-Control-Allow-Headers"])
コード例 #11
0
ファイル: requests_tests.py プロジェクト: masuka/python-cors
    def test_send_with_expected_server_error(self, prepare, _):
        check = preflight.check_headers
        prepare.return_value = (None, [check])
        request = _request()
        request._response = _response()
        request._response.status_code = 500
        request._response.headers["Access-Control-Allow-Headers"] = "foo"
        session = _session()

        response = requests.send(
            request,
            session,
            skip_checks_on_server_error=True)

        self.assertEqual(response.status_code, 500)
        self.assertNotIn(
            "Content-Type",
            response.headers["Access-Control-Allow-Headers"])