From 8cd5827b59596e617df384a9b4b198abc5df55ed Mon Sep 17 00:00:00 2001 From: shemogumbe Date: Tue, 8 Oct 2024 14:27:03 +0300 Subject: [PATCH 1/3] get method value if enum is passed --- src/msgraph_core/requests/batch_request_item.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/msgraph_core/requests/batch_request_item.py b/src/msgraph_core/requests/batch_request_item.py index 61fa480b..3bab3453 100644 --- a/src/msgraph_core/requests/batch_request_item.py +++ b/src/msgraph_core/requests/batch_request_item.py @@ -1,4 +1,5 @@ import re +import enum import json from uuid import uuid4 from typing import List, Optional, Dict, Union, Any @@ -39,7 +40,10 @@ def __init__( if request_information is None or not request_information.http_method: raise ValueError("HTTP method cannot be Null/Empty") self._id = id or str(uuid4()) - self.method = request_information.http_method + if isinstance(request_information.http_method, enum.Enum): + self._method = request_information.http_method.name + else: + self._method = request_information.http_method self._headers = request_information.request_headers self._body = request_information.content self.url = request_information.url.replace('/users/me-token-to-replace', '/me', 1) @@ -183,7 +187,9 @@ def method(self, value: str) -> None: Sets the HTTP method of the request item. Args: value (str): The HTTP method of the request item. + """ + self._method = value @property From 2000bbbcd4bad76464c053e6566e05166a0e2fe6 Mon Sep 17 00:00:00 2001 From: shemogumbe Date: Tue, 8 Oct 2024 14:37:11 +0300 Subject: [PATCH 2/3] added unit tests for method enum error fix --- tests/requests/test_batch_request_item.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/requests/test_batch_request_item.py b/tests/requests/test_batch_request_item.py index 4b14b483..2dd3d863 100644 --- a/tests/requests/test_batch_request_item.py +++ b/tests/requests/test_batch_request_item.py @@ -2,6 +2,7 @@ from unittest.mock import Mock from urllib.request import Request from kiota_abstractions.request_information import RequestInformation +from kiota_abstractions.method import Method from kiota_abstractions.headers_collection import HeadersCollection as RequestHeaders from msgraph_core.requests.batch_request_item import BatchRequestItem, StreamInterface from kiota_abstractions.serialization import SerializationWriter @@ -109,6 +110,17 @@ def test_method_property(batch_request_item): assert batch_request_item.method == "POST" +def test_batch_request_item_method_enum(): + # Create a RequestInformation instance with an enum value for http_method + request_info = RequestInformation() + request_info.http_method = Method.GET + request_info.url = "https://graph.microsoft.com/v1.0/me" + request_info.headers = RequestHeaders() + request_info.content = None + batch_request_item = BatchRequestItem(request_information=request_info) + assert batch_request_item.method == "GET" + + def test_depends_on_property(batch_request_item): batch_request_item.set_depends_on(["request1", "request2"]) assert batch_request_item.depends_on == ["request1", "request2"] From 1e6dc497367c5cec72975acb715db82b242dca72 Mon Sep 17 00:00:00 2001 From: shemogumbe Date: Tue, 8 Oct 2024 14:44:48 +0300 Subject: [PATCH 3/3] fix(batch_requests): allow Enum method types