Skip to content

Commit dadb11a

Browse files
committed
fix tests
1 parent 58494a8 commit dadb11a

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

posthog/client.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -855,10 +855,14 @@ def _compute_payload_locally(self, key, match_value):
855855
if self.feature_flags_by_key is None:
856856
return payload
857857

858-
flag_definition = self.feature_flags_by_key.get(key) or {}
859-
flag_filters = flag_definition.get("filters") or {}
860-
flag_payloads = flag_filters.get("payloads") or {}
861-
payload = flag_payloads.get(str(match_value), None)
858+
flag_definition = self.feature_flags_by_key.get(key)
859+
if flag_definition:
860+
flag_filters = flag_definition.get("filters") or {}
861+
flag_payloads = flag_filters.get("payloads") or {}
862+
# For boolean flags, convert True to "true"
863+
# For multivariate flags, use the variant string as-is
864+
lookup_value = "true" if isinstance(match_value, bool) and match_value else str(match_value)
865+
payload = flag_payloads.get(lookup_value, None)
862866
return payload
863867

864868
def get_all_flags(

posthog/test/test_feature_flags.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4643,6 +4643,8 @@ def test_multivariate_flag_consistency(self, patch_get):
46434643

46444644
@mock.patch("posthog.client.decide")
46454645
def test_feature_flag_case_sensitive(self, mock_decide):
4646+
mock_decide.return_value = {"featureFlags": {}} # Ensure decide returns empty flags
4647+
46464648
client = Client(api_key=FAKE_TEST_API_KEY, personal_api_key=FAKE_TEST_API_KEY)
46474649
client.feature_flags = [
46484650
{

0 commit comments

Comments
 (0)