code: def test_execution_context(default_model_storage: ModelStorage):
      graph_schema = GraphSchema(
          {
              "execution_context_aware": SchemaNode(
                  needs={},
                  uses=ExecutionContextAware,
                  fn="get_execution_context",
                  constructor_name="create",
                  config={},
                  is_target=True,
              )
          }
      )
      context = ExecutionContext(
          graph_schema=graph_schema, model_id="some_id"
      )
      runner = DaskGraphRunner(
          graph_schema=graph_schema,
          model_storage=default_model_storage,
          execution_context=context,
      )
      context.model_id = "a_new_id"
      result = runner.run()["execution_context_aware"]
      assert result.model_id == "some_id"
      assert result.node_name == "execution_context_aware"
  
imports: from __future__ import annotations
  from typing import Optional
  import pytest
  from rasa.engine.graph import ExecutionContext, GraphSchema, SchemaNode
  from rasa.engine.exceptions import GraphRunError
  from rasa.engine.runner.dask import DaskGraphRunner
  from rasa.engine.storage.storage import ModelStorage
  from tests.engine.graph_components_test_classes import AddInputs, AssertComponent, ExecutionContextAware, ProvideX, SubtractByX, PersistableTestComponent
label_desc: Use image node_id 10 for calling a global function with example usage: test_execution_context(default_model_storage) without return types