diff --git a/src/msgraph_core/requests/batch_request_content_collection.py b/src/msgraph_core/requests/batch_request_content_collection.py index 3f5cb511..ddf0acb8 100644 --- a/src/msgraph_core/requests/batch_request_content_collection.py +++ b/src/msgraph_core/requests/batch_request_content_collection.py @@ -16,8 +16,8 @@ def __init__(self) -> None: """ self.max_requests_per_batch = BatchRequestContent.MAX_REQUESTS - self.batches: list[BatchRequestContent] = [] self.current_batch: BatchRequestContent = BatchRequestContent() + self.batches: list[BatchRequestContent] = [self.current_batch] def add_batch_request_item(self, request: BatchRequestItem) -> None: """ @@ -26,10 +26,10 @@ def add_batch_request_item(self, request: BatchRequestItem) -> None: request (BatchRequestItem): The request item to add. """ if len(self.current_batch.requests) >= self.max_requests_per_batch: - self.batches.append(self.current_batch.finalize()) + self.current_batch.finalize() self.current_batch = BatchRequestContent() + self.batches.append(self.current_batch) self.current_batch.add_request(request.id, request) - self.batches.append(self.current_batch) def remove_batch_request_item(self, request_id: str) -> None: """ diff --git a/tests/requests/test_batch_request_content_collection.py b/tests/requests/test_batch_request_content_collection.py new file mode 100644 index 00000000..da250164 --- /dev/null +++ b/tests/requests/test_batch_request_content_collection.py @@ -0,0 +1,44 @@ +import pytest +from io import BytesIO +from kiota_abstractions.request_information import RequestInformation +from msgraph_core.requests.batch_request_item import BatchRequestItem +from msgraph_core.requests.batch_request_content_collection import BatchRequestContentCollection +from kiota_abstractions.headers_collection import HeadersCollection as RequestHeaders + + +@pytest.fixture +def batch_request_content_collection(): + return BatchRequestContentCollection() + + +@pytest.fixture +def request_info(): + request_info = RequestInformation() + request_info.http_method = "GET" + request_info.url = "https://graph.microsoft.com/v1.0/me" + request_info.headers = RequestHeaders() + request_info.headers.add("Content-Type", "application/json") + request_info.content = BytesIO(b'{"key": "value"}') + return request_info + + +@pytest.fixture +def batch_request_item1(request_info): + return BatchRequestItem(request_information=request_info, id="1") + + +@pytest.fixture +def batch_request_item2(request_info): + return BatchRequestItem(request_information=request_info, id="2") + + +def test_init_batches(batch_request_content_collection): + assert len(batch_request_content_collection.batches) == 1 + assert batch_request_content_collection.current_batch is not None + + +def test_add_batch_request_item(batch_request_content_collection, batch_request_item1, batch_request_item2): + batch_request_content_collection.add_batch_request_item(batch_request_item1) + batch_request_content_collection.add_batch_request_item(batch_request_item2) + assert len(batch_request_content_collection.batches) == 1 + assert len(batch_request_content_collection.current_batch.requests) == 2