diff --git a/devcycle_python_sdk/api/event_client.py b/devcycle_python_sdk/api/event_client.py index 862a115..942b064 100644 --- a/devcycle_python_sdk/api/event_client.py +++ b/devcycle_python_sdk/api/event_client.py @@ -36,7 +36,7 @@ def publish_events(self, batch: List[UserEventsBatchRecord]) -> str: Attempts to send a batch of events to the server """ retries_remaining = self.max_batch_retries + 1 - timeout = self.options.event_request_timeout_ms + timeout = self.options.event_request_timeout_ms / 1000.0 payload_json = json.dumps( { diff --git a/test/api/test_event_client.py b/test/api/test_event_client.py index 6a12537..ccec818 100644 --- a/test/api/test_event_client.py +++ b/test/api/test_event_client.py @@ -66,6 +66,24 @@ def test_publish_events_empty_batch(self): message = self.test_client.publish_events([]) self.assertEqual(message, "Successfully received 1 event batches.") + @responses.activate + def test_publish_events_timeout_in_seconds(self): + responses.add(responses.POST, self.test_batch_url, json={"message": "ok"}) + self.test_client.publish_events(self.test_batch) + self.assertEqual(responses.calls[0].request.req_kwargs["timeout"], 10.0) + + @responses.activate + def test_publish_events_custom_timeout_in_seconds(self): + client = EventAPIClient( + self.sdk_key, + DevCycleLocalOptions( + events_api_uri="http://localhost:8080", event_request_timeout_ms=250 + ), + ) + responses.add(responses.POST, self.test_batch_url, json={"message": "ok"}) + client.publish_events(self.test_batch) + self.assertEqual(responses.calls[0].request.req_kwargs["timeout"], 0.25) + @responses.activate(registry=OrderedRegistry) def test_publish_events_retries_exceeded(self): for i in range(2):