From 01b504af3ce7a20a337bbe1a62919bbe8e7bb861 Mon Sep 17 00:00:00 2001 From: Simon Schrottner Date: Tue, 3 Nov 2026 08:28:41 +0100 Subject: [PATCH] fix(unleash): accept the arguments the client passes to track OpenFeatureClient.track calls provider.track(name, context, details), and the no-op declared (event_name, event_details), so every client.track call raised TypeError. It now takes the SDK's three arguments. The details stay typed Any so the provider still type-checks against openfeature-sdk 0.8, which has no TrackingEventDetails. Closes #433 Signed-off-by: Simon Schrottner --- .../src/openfeature/contrib/provider/unleash/__init__.py | 5 +++-- .../openfeature-provider-unleash/tests/test_provider.py | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/providers/openfeature-provider-unleash/src/openfeature/contrib/provider/unleash/__init__.py b/providers/openfeature-provider-unleash/src/openfeature/contrib/provider/unleash/__init__.py index 8c0d6fef9..bf8440b5d 100644 --- a/providers/openfeature-provider-unleash/src/openfeature/contrib/provider/unleash/__init__.py +++ b/providers/openfeature-provider-unleash/src/openfeature/contrib/provider/unleash/__init__.py @@ -138,8 +138,9 @@ def _unleash_event_callback(self, event: BaseEvent) -> None: def track( self, - event_name: str, - event_details: dict | None = None, + tracking_event_name: str, + evaluation_context: EvaluationContext | None = None, + tracking_event_details: Any = None, ) -> None: """No-op tracking method. diff --git a/providers/openfeature-provider-unleash/tests/test_provider.py b/providers/openfeature-provider-unleash/tests/test_provider.py index c47eb21d8..a9590ac6e 100644 --- a/providers/openfeature-provider-unleash/tests/test_provider.py +++ b/providers/openfeature-provider-unleash/tests/test_provider.py @@ -123,6 +123,15 @@ def test_unleash_provider_all_methods_implemented(): provider.shutdown() +def test_unleash_provider_track_takes_the_sdk_arguments(): + """The client calls track with three positional arguments; it must no-op.""" + provider = UnleashProvider( + url="http://localhost:4242", app_name="test-app", api_token="test-token" + ) + + assert provider.track("event", EvaluationContext("user"), None) is None + + def test_unleash_provider_hooks(): """Test that UnleashProvider returns empty hooks list.""" provider = UnleashProvider(