Skip to content

Commit e611ded

Browse files
author
Max Wang
committed
cleanup and move the ids to be optional
1 parent 3f9473e commit e611ded

3 files changed

Lines changed: 14 additions & 9 deletions

File tree

src/PowerPlatform/Dataverse/core/errors.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,11 @@ class HttpError(DataverseError):
141141
:type subcode: :class:`str` | None
142142
:param service_error_code: Optional Dataverse-specific error code from the API response.
143143
:type service_error_code: :class:`str` | None
144-
:param correlation_id: Client-generated Correlation ID for tracking requests within a SDK call.
144+
:param correlation_id: Optional client-generated correlation ID for tracking requests within an SDK call.
145145
:type correlation_id: :class:`str` | None
146-
:param client_request_id: Client-generated request ID injected into outbound headers.
146+
:param client_request_id: Optional client-generated request ID injected into outbound headers.
147147
:type client_request_id: :class:`str` | None
148-
:param service_request_id: ``x-ms-service-request-id`` returned by Dataverse servers.
148+
:param service_request_id: Optional ``x-ms-service-request-id`` value returned by Dataverse servers.
149149
:type service_request_id: :class:`str` | None
150150
:param traceparent: Optional W3C trace context for distributed tracing.
151151
:type traceparent: :class:`str` | None
@@ -161,12 +161,12 @@ def __init__(
161161
self,
162162
message: str,
163163
status_code: int,
164-
correlation_id: Optional[str],
165-
client_request_id: Optional[str],
166-
service_request_id: Optional[str],
167164
is_transient: bool = False,
168165
subcode: Optional[str] = None,
169166
service_error_code: Optional[str] = None,
167+
correlation_id: Optional[str] = None,
168+
client_request_id: Optional[str] = None,
169+
service_request_id: Optional[str] = None,
170170
traceparent: Optional[str] = None,
171171
body_excerpt: Optional[str] = None,
172172
retry_after: Optional[int] = None,

src/PowerPlatform/Dataverse/data/_odata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,11 @@ def _request(self, method: str, url: str, *, expected: tuple[int, ...] = (200, 2
205205
raise HttpError(
206206
msg,
207207
status_code=sc,
208+
subcode=subcode,
209+
service_error_code=svc_code,
208210
correlation_id=merged_headers.get("x-ms-correlation-request-id"),
209211
client_request_id=merged_headers.get("x-ms-client-request-id"),
210212
service_request_id=request_id,
211-
subcode=subcode,
212-
service_error_code=svc_code,
213213
traceparent=traceparent,
214214
body_excerpt=body_excerpt,
215215
retry_after=retry_after,

tests/unit/core/test_http_errors.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,12 @@ def test_correlation_id_diff_without_scope():
157157
assert len(recorder.recorded_headers) == 2
158158
h1, h2 = recorder.recorded_headers
159159
assert h1["x-ms-client-request-id"] != h2["x-ms-client-request-id"]
160-
assert h1["x-ms-correlation-request-id"] != h2["x-ms-correlation-request-id"]
160+
cid1 = h1.get("x-ms-correlation-request-id")
161+
cid2 = h2.get("x-ms-correlation-request-id")
162+
if cid1 is not None and cid2 is not None:
163+
assert cid1 != cid2
164+
else:
165+
assert cid1 is cid2 is None
161166

162167

163168
def test_correlation_id_shared_inside_call_scope():

0 commit comments

Comments
 (0)