From ba32e6194d2a5bc42688ee46a9b3068aeeb8704d Mon Sep 17 00:00:00 2001 From: wadii Date: Mon, 31 Aug 2026 14:58:39 +0200 Subject: [PATCH] fix: send correct SDK user agent in analytics events --- flagsmith/analytics.py | 4 ++-- flagsmith/flagsmith.py | 3 +-- flagsmith/version.py | 2 ++ tests/test_event_processor.py | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/flagsmith/analytics.py b/flagsmith/analytics.py index a26a9b4..f5af134 100644 --- a/flagsmith/analytics.py +++ b/flagsmith/analytics.py @@ -8,7 +8,7 @@ from requests_futures.sessions import FuturesSession # type: ignore -from flagsmith.version import __version__ +from flagsmith.version import DEFAULT_USER_AGENT, __version__ logger = logging.getLogger(__name__) @@ -218,7 +218,7 @@ def flush(self) -> None: headers={ "Content-Type": "application/json; charset=utf-8", "X-Environment-Key": self._environment_key, - "Flagsmith-SDK-User-Agent": f"flagsmith-python-client/{__version__}", + "Flagsmith-SDK-User-Agent": DEFAULT_USER_AGENT, }, ) except RuntimeError: diff --git a/flagsmith/flagsmith.py b/flagsmith/flagsmith.py index 2c6ee7c..c46bdd1 100644 --- a/flagsmith/flagsmith.py +++ b/flagsmith/flagsmith.py @@ -41,13 +41,12 @@ TraitMapping, ) from flagsmith.utils.identities import generate_identity_data -from flagsmith.version import __version__ +from flagsmith.version import DEFAULT_USER_AGENT logger = logging.getLogger(__name__) DEFAULT_API_URL = "https://edge.api.flagsmith.com/api/v1/" DEFAULT_REALTIME_API_URL = "https://realtime.flagsmith.com/" -DEFAULT_USER_AGENT = f"flagsmith-python-sdk/{__version__}" class Flagsmith: diff --git a/flagsmith/version.py b/flagsmith/version.py index aa2c58c..42ed80a 100644 --- a/flagsmith/version.py +++ b/flagsmith/version.py @@ -1,3 +1,5 @@ from importlib.metadata import version __version__ = version("flagsmith") + +DEFAULT_USER_AGENT = f"flagsmith-python-sdk/{__version__}" diff --git a/tests/test_event_processor.py b/tests/test_event_processor.py index 6a1bc2a..52595a7 100644 --- a/tests/test_event_processor.py +++ b/tests/test_event_processor.py @@ -171,7 +171,7 @@ def test_flush_sends_correct_http_request(event_processor: EventProcessor) -> No headers = call_kwargs[1]["headers"] assert headers["X-Environment-Key"] == "test_key" assert headers["Content-Type"] == "application/json; charset=utf-8" - assert "flagsmith-python-client/" in headers["Flagsmith-SDK-User-Agent"] + assert "flagsmith-python-sdk/" in headers["Flagsmith-SDK-User-Agent"] body = json.loads(call_kwargs[1]["data"]) assert "environment_key" not in body