@@ -4640,7 +4640,6 @@ def test_multivariate_flag_consistency(self, patch_get):
46404640 self .assertEqual (feature_flag_match , results [i ])
46414641 else :
46424642 self .assertFalse (feature_flag_match )
4643-
46444643 @mock .patch ("posthog.client.decide" )
46454644 def test_feature_flag_case_insensitive (self , mock_decide ):
46464645 client = Client (api_key = FAKE_TEST_API_KEY , personal_api_key = FAKE_TEST_API_KEY )
@@ -4660,8 +4659,40 @@ def test_feature_flag_case_insensitive(self, mock_decide):
46604659 self .assertTrue (client .feature_enabled ("beta-feature" , "user1" ))
46614660 self .assertTrue (client .feature_enabled ("BETA-FEATURE" , "user1" ))
46624661
4662+ @mock .patch ("posthog.client.decide" )
4663+ def test_feature_flag_payload_case_insensitive (self , mock_decide ):
4664+ mock_decide .return_value = {
4665+ "featureFlags" : {"beta-feature" : True },
4666+ "featureFlagPayloads" : {"beta-feature" : {"some" : "value" }}
4667+ }
4668+
4669+ client = Client (api_key = FAKE_TEST_API_KEY , personal_api_key = FAKE_TEST_API_KEY )
4670+ client .feature_flags = [
4671+ {
4672+ "id" : 1 ,
4673+ "key" : "Beta-Feature" ,
4674+ "active" : True ,
4675+ "filters" : {
4676+ "groups" : [{"properties" : [], "rollout_percentage" : 100 }],
4677+ "payloads" : {
4678+ "true" : {"some" : "value" },
4679+ }
4680+ },
4681+ }
4682+ ]
4683+
4684+ # Test that payload retrieval works regardless of case
4685+ self .assertEqual (client .get_feature_flag_payload ("Beta-Feature" , "user1" ), {"some" : "value" })
4686+ self .assertEqual (client .get_feature_flag_payload ("beta-feature" , "user1" ), {"some" : "value" })
4687+ self .assertEqual (client .get_feature_flag_payload ("BETA-FEATURE" , "user1" ), {"some" : "value" })
4688+
46634689 @mock .patch ("posthog.client.decide" )
46644690 def test_feature_flag_mixed_case_consistency (self , mock_decide ):
4691+ mock_decide .return_value = {
4692+ "featureFlags" : {"beta-feature" : True },
4693+ "featureFlagPayloads" : {"beta-feature" : {"some" : "value" }}
4694+ }
4695+
46654696 client = Client (api_key = FAKE_TEST_API_KEY , personal_api_key = FAKE_TEST_API_KEY )
46664697 client .feature_flags = [
46674698 {
@@ -4679,8 +4710,8 @@ def test_feature_flag_mixed_case_consistency(self, mock_decide):
46794710
46804711 # Test that flag evaluation and payload retrieval are consistent
46814712 # regardless of the case used
4682- test_cases = ["Beta-Feature" , "beta-feature" , "BETA-FEATURE" , "bEtA-FeAtUrE" ]
4683-
4713+ test_cases = ["Beta-Feature" , "beta-feature" , "BETA-FEATURE" , "bEtA-FeAtUrE" ]
46844714 for case in test_cases :
46854715 # Both the flag evaluation and payload retrieval should work
4686- self .assertTrue (client .feature_enabled (case , "user1" ))
4716+ self .assertTrue (client .feature_enabled (case , "user1" ))
4717+ self .assertEqual (client .get_feature_flag_payload (case , "user1" ), {"some" : "value" })
0 commit comments