@@ -228,9 +228,9 @@ def test_decide__feature_test(self):
228228 mock_variation = project_config .get_variation_from_id ('test_experiment' , '111129' )
229229
230230 with mock .patch (
231- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
232- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
233- enums .DecisionSources .FEATURE_TEST ), []),
231+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
232+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
233+ enums .DecisionSources .FEATURE_TEST ), [])]
234234 ), mock .patch (
235235 'optimizely.notification_center.NotificationCenter.send_notifications'
236236 ) as mock_broadcast_decision , mock .patch (
@@ -303,9 +303,9 @@ def test_decide__feature_test__send_flag_decision_false(self):
303303 mock_variation = project_config .get_variation_from_id ('test_experiment' , '111129' )
304304
305305 with mock .patch (
306- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
307- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
308- enums .DecisionSources .FEATURE_TEST ), []),
306+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
307+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
308+ enums .DecisionSources .FEATURE_TEST ), [])]
309309 ), mock .patch (
310310 'optimizely.notification_center.NotificationCenter.send_notifications'
311311 ) as mock_broadcast_decision , mock .patch (
@@ -478,9 +478,9 @@ def test_decide_feature_null_variation(self):
478478 mock_variation = None
479479
480480 with mock .patch (
481- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
482- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
483- enums .DecisionSources .ROLLOUT ), []),
481+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
482+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
483+ enums .DecisionSources .ROLLOUT ), [])] ,
484484 ), mock .patch (
485485 'optimizely.notification_center.NotificationCenter.send_notifications'
486486 ) as mock_broadcast_decision , mock .patch (
@@ -553,9 +553,9 @@ def test_decide_feature_null_variation__send_flag_decision_false(self):
553553 mock_variation = None
554554
555555 with mock .patch (
556- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
557- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
558- enums .DecisionSources .ROLLOUT ), []),
556+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
557+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
558+ enums .DecisionSources .ROLLOUT ), [])] ,
559559 ), mock .patch (
560560 'optimizely.notification_center.NotificationCenter.send_notifications'
561561 ) as mock_broadcast_decision , mock .patch (
@@ -614,9 +614,9 @@ def test_decide__option__disable_decision_event(self):
614614 mock_variation = project_config .get_variation_from_id ('test_experiment' , '111129' )
615615
616616 with mock .patch (
617- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
618- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
619- enums .DecisionSources .FEATURE_TEST ), []),
617+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
618+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
619+ enums .DecisionSources .FEATURE_TEST ), [])] ,
620620 ), mock .patch (
621621 'optimizely.notification_center.NotificationCenter.send_notifications'
622622 ) as mock_broadcast_decision , mock .patch (
@@ -679,8 +679,8 @@ def test_decide__default_option__disable_decision_event(self):
679679
680680 with mock .patch (
681681 'optimizely.decision_service.DecisionService.get_variations_for_feature_list' ,
682- return_value = ([ decision_service .Decision (mock_experiment , mock_variation ,
683- enums .DecisionSources .FEATURE_TEST ), []]),
682+ return_value = [( decision_service .Decision (mock_experiment , mock_variation ,
683+ enums .DecisionSources .FEATURE_TEST ), [])]
684684 ), mock .patch (
685685 'optimizely.notification_center.NotificationCenter.send_notifications'
686686 ) as mock_broadcast_decision , mock .patch (
@@ -739,9 +739,9 @@ def test_decide__option__exclude_variables(self):
739739 mock_variation = project_config .get_variation_from_id ('test_experiment' , '111129' )
740740
741741 with mock .patch (
742- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
743- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
744- enums .DecisionSources .FEATURE_TEST ), []),
742+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
743+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
744+ enums .DecisionSources .FEATURE_TEST ), [])] ,
745745 ), mock .patch (
746746 'optimizely.notification_center.NotificationCenter.send_notifications'
747747 ) as mock_broadcast_decision , mock .patch (
@@ -835,9 +835,9 @@ def test_decide__option__enabled_flags_only(self):
835835 expected_var = project_config .get_variation_from_key ('211127' , '211229' )
836836
837837 with mock .patch (
838- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
839- return_value = (decision_service .Decision (expected_experiment , expected_var ,
840- enums .DecisionSources .ROLLOUT ), []),
838+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
839+ return_value = [ (decision_service .Decision (expected_experiment , expected_var ,
840+ enums .DecisionSources .ROLLOUT ), [])] ,
841841 ), mock .patch (
842842 'optimizely.notification_center.NotificationCenter.send_notifications'
843843 ) as mock_broadcast_decision , mock .patch (
@@ -914,9 +914,9 @@ def test_decide__default_options__with__options(self):
914914 mock_variation = project_config .get_variation_from_id ('test_experiment' , '111129' )
915915
916916 with mock .patch (
917- 'optimizely.decision_service.DecisionService.get_variation_for_feature ' ,
918- return_value = (decision_service .Decision (mock_experiment , mock_variation ,
919- enums .DecisionSources .FEATURE_TEST ), []),
917+ 'optimizely.decision_service.DecisionService.get_variations_for_feature_list ' ,
918+ return_value = [ (decision_service .Decision (mock_experiment , mock_variation ,
919+ enums .DecisionSources .FEATURE_TEST ), [])] ,
920920 ), mock .patch (
921921 'optimizely.notification_center.NotificationCenter.send_notifications'
922922 ) as mock_broadcast_decision , mock .patch (
@@ -1026,19 +1026,24 @@ def side_effect(*args, **kwargs):
10261026 options = ['ENABLED_FLAGS_ONLY' ]
10271027 decisions = user_context .decide_for_keys (flags , options )
10281028
1029- self .assertEqual (1 , len (decisions ))
1030-
1031- mock_decide .assert_any_call (
1032- user_context ,
1033- 'test_feature_in_experiment' ,
1034- options
1035- )
1029+ self .assertEqual (2 , len (decisions ))
10361030
10371031 mock_decide .assert_any_call (
10381032 user_context ,
1039- 'test_feature_in_rollout' ,
1033+ [ 'test_feature_in_rollout' , 'test_feature_in_experiment' ] ,
10401034 options
10411035 )
1036+ # mock_decide.assert_any_call(
1037+ # user_context,
1038+ # 'test_feature_in_experiment',
1039+ # options
1040+ # )
1041+
1042+ # mock_decide.assert_any_call(
1043+ # user_context,
1044+ # 'test_feature_in_rollout',
1045+ # options
1046+ # )
10421047
10431048 self .assertEqual (mocked_decision_1 , decisions ['test_feature_in_experiment' ])
10441049
@@ -1638,6 +1643,8 @@ def test_should_return_valid_decision_after_setting_invalid_experiment_rule_vari
16381643 self .assertEqual (decide_decision .user_context .get_user_attributes (), {})
16391644
16401645 expected_reasons = [
1646+ 'Invalid variation is mapped to flag (test_feature_in_experiment), rule (test_experiment) '
1647+ 'and user (test_user) in the forced decision map.' ,
16411648 'Invalid variation is mapped to flag (test_feature_in_experiment), rule (test_experiment) '
16421649 'and user (test_user) in the forced decision map.' ,
16431650 'Evaluating audiences for experiment "test_experiment": [].' ,
0 commit comments