def METHOD_NAME():
    with tempfile.TemporaryDirectory() as tempdir:
        dagit_port = find_free_port()
        grpc_port = find_free_port()
        grpc_process = None
        dev_process = None
        try:
            subprocess_args = [
                "dagster",
                "api",
                "grpc",
                "-f",
                os.path.join(
                    os.path.dirname(__file__),
                    "repo.py",
                ),
                "--working-directory",
                os.path.dirname(__file__),
                "-p",
                str(grpc_port),
            ]
            grpc_process = subprocess.Popen(subprocess_args)
            client = DagsterGrpcClient(port=grpc_port, host="localhost")
            wait_for_grpc_server(grpc_process, client, subprocess_args)
            dev_process = subprocess.Popen(
                [
                    "dagster",
                    "dev",
                    "--dagit-port",
                    str(dagit_port),
                    "--dagit-host",
                    "127.0.0.1",
                    "--grpc-port",
                    str(grpc_port),
                    "--grpc-host",
                    "localhost",
                ],
                cwd=tempdir,
            )
            _wait_for_dagit_running(dagit_port)
            client = DagsterGraphQLClient(hostname="localhost", port_number=dagit_port)
            client.submit_job_execution("foo_job")
        finally:
            if grpc_process:
                grpc_process.send_signal(signal.SIGINT)
                grpc_process.communicate()
            if dev_process:
                dev_process.send_signal(signal.SIGINT)
                dev_process.communicate()