def test_http_batch_request_close_session(self, session):
        mocked__send = mock.Mock()
        http = requests.HTTPBatchRequest(session=session)
        http._send = mocked__send
        http.close()

        session.close.assert_called()
        mocked__send.assert_called()
    def test_http_batch_request_max_batch_size(self, session):
        call_count = 50
        with requests.HTTPBatchRequest(session=session) as http:
            for _ in range(call_count):
                http.send({"foo": "bar"})

        max_batch_size = requests.HTTPBatchRequest.max_batch_size
        expected_call_count = math.ceil(call_count / max_batch_size)
        assert session.post.call_count == expected_call_count
    def test_http_batch_request(self, session):
        payload_1 = {"foo": "bar"}
        payload_2 = {"bar": "foo"}
        with requests.HTTPBatchRequest(session=session) as http:
            http.send(payload_1)
            http.send(payload_2)

        session.post.assert_called_with(requests.HTTPBatchRequest.endpoint,
                                        data=requests.encode_payload(
                                            [payload_1, payload_2]))