def test_apply_controls_even_on_background_activity(): exp = deepcopy(experiments.ExperimentNoControls) exp["method"][0]["background"] = True exp["method"][0]["pauses"] = {"after": 1} activities = get_all_activities(exp) for activity in activities: assert "before_activity_control" not in activity assert "after_activity_control" not in activity assert get_global_controls() == [] run_experiment(exp, settings={ "dummy-key": "hello there", "controls": { "dummy": { "provider": { "type": "python", "module": "fixtures.controls.dummy" } } } }) assert get_global_controls() == [] assert exp["control-value"] == "hello there" for activity in activities: assert "before_activity_control" in activity assert "after_activity_control" in activity assert activity["before_activity_control"] is True assert activity["after_activity_control"] is True
def test_get_globally_loaded_controls_from_settings(): assert get_global_controls() == [] settings = { "controls": { "dummy": { "provider": { "type": "python", "module": "fixtures.controls.dummy" } } } } load_global_controls(settings) initialize_global_controls({}, {}, {}, settings) try: ctrls = get_global_controls() assert len(ctrls) == 1 assert ctrls[0]["name"] == "dummy" assert ctrls[0]["provider"]["type"] == "python" assert ctrls[0]["provider"]["module"] == "fixtures.controls.dummy" finally: cleanup_global_controls() assert get_global_controls() == []
def test_load_global_controls_from_settings_configured_via_exp_config(): exp = deepcopy(experiments.ExperimentUsingConfigToConfigureControls) activities = get_all_activities(exp) for activity in activities: assert "before_activity_control" not in activity assert "after_activity_control" not in activity assert get_global_controls() == [] run_experiment(exp, settings={ "controls": { "dummy": { "provider": { "type": "python", "module": "fixtures.controls.dummy" } } } }) assert get_global_controls() == [] assert exp["control-value"] == "blah blah" for activity in activities: assert "before_activity_control" in activity assert "after_activity_control" in activity assert activity["before_activity_control"] is True assert activity["after_activity_control"] is True
def test_load_global_controls_from_settings(): exp = deepcopy(experiments.ExperimentNoControls) activities = get_all_activities(exp) for activity in activities: assert "before_activity_control" not in activity assert "after_activity_control" not in activity assert get_global_controls() == [] settings = { "dummy-key": "hello there", "controls": { "dummy": { "provider": { "type": "python", "module": "fixtures.controls.dummy" } } } } load_global_controls(settings) run_experiment(exp, settings) assert get_global_controls() == [] assert exp["control-value"] == "hello there" for activity in activities: assert "before_activity_control" in activity assert "after_activity_control" in activity assert activity["before_activity_control"] is True assert activity["after_activity_control"] is True
def test_controls_not_registered_when_passed_unexpected_args(): exp = deepcopy(experiments.ExperimentWithUnexpectedArgumentsControls) initialize_controls(exp) assert get_global_controls() == []