From b3d914967b9f590a3068c7a4c3315d080bacae12 Mon Sep 17 00:00:00 2001 From: Richard Marmorstein Date: Fri, 1 Dec 2023 14:10:48 -0800 Subject: [PATCH] Better test --- stripe/request_metrics.py | 7 +++++-- tests/test_integration.py | 16 +++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/stripe/request_metrics.py b/stripe/request_metrics.py index e6bf45e11..f1e8596bd 100644 --- a/stripe/request_metrics.py +++ b/stripe/request_metrics.py @@ -13,8 +13,11 @@ def __init__( self.usage = usage def payload(self): - return { + ret = { "request_id": self.request_id, "request_duration_ms": self.request_duration_ms, - "usage": self.usage, } + + if (self.usage is not None and len(self.usage) > 0): + ret["usage"] = self.usage + return ret diff --git a/tests/test_integration.py b/tests/test_integration.py index ec647debc..7262ecc20 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -164,8 +164,6 @@ class MockServerRequestHandler(TestHandler): def test_passes_client_telemetry_when_enabled(self): class MockServerRequestHandler(TestHandler): - num_requests = 0 - def do_request(self, req_num): if req_num == 0: time.sleep(31 / 1000) # 31 ms @@ -174,7 +172,7 @@ def do_request(self, req_num): 200, { "Content-Type": "application/json; charset=utf-8", - "Request-Id": "req_1", + "Request-Id": "req_%s" % (req_num + 1), }, None, ] @@ -187,10 +185,11 @@ def do_request(self, req_num): cus.description = "hello" cus.save() + stripe.Customer.retrieve("cus_xyz") stripe.Customer.retrieve("cus_xyz") - reqs = MockServerRequestHandler.get_requests(2) - assert MockServerRequestHandler.num_requests == 2 + reqs = MockServerRequestHandler.get_requests(3) + # req 1 assert not reqs[0].headers.get("x-stripe-client-telemetry") # req 2 @@ -208,6 +207,13 @@ def do_request(self, req_num): usage = telemetry["last_request_metrics"]["usage"] assert usage == ["save"] + # req 3 + telemetry_raw = reqs[2].headers.get("x-stripe-client-telemetry") + assert telemetry_raw is not None + metrics = json.loads(telemetry_raw)["last_request_metrics"] + assert metrics["request_id"] == "req_2" + assert "usage" not in metrics + def test_uses_thread_local_client_telemetry(self): class MockServerRequestHandler(TestHandler): local_num_requests = 0