def METHOD_NAME(
    temp_salt_minion,
    temp_salt_master,
    root_dir,
    base_state_tree_dir,
    other_state_tree_dir,
    cache_dir,
):
    for dpath in (
        root_dir,
        base_state_tree_dir,
        other_state_tree_dir,
        cache_dir,
    ):
        if not os.path.isdir(dpath):
            os.makedirs(dpath)
    test_sls = """
    test state:
      test.succeed_without_changes:
        - name: test
        """
    with pytest.helpers.temp_file("test.sls", test_sls, other_state_tree_dir):
        opts = temp_salt_minion.config.copy()
        opts["root_dir"] = root_dir
        opts["state_events"] = False
        opts["id"] = "match"
        opts["file_client"] = "local"
        opts["file_roots"] = dict(
            base=[base_state_tree_dir],
            other=[other_state_tree_dir],
            __env__=[base_state_tree_dir],
        )
        opts["cachedir"] = cache_dir
        opts["test"] = False
        opts.update(
            {
                "transport": "zeromq",
                "auth_tries": 1,
                "auth_timeout": 5,
                "master_ip": "127.0.0.1",
                "master_port": temp_salt_master.config["ret_port"],
                "master_uri": "tcp://127.0.0.1:{}".format(
                    temp_salt_master.config["ret_port"]
                ),
            }
        )
        _highstate = salt.state.HighState(opts)
        _highstate.push_active()
        yield _highstate