code: def test_action_connector_gets_raw_input_dict(self):
      class CheckInputDictActionConnector(ActionConnector):
          def __call__(self, ac_data):
              assert (
                  ac_data.input_dict
              ), "raw input dict should be available"
              return ac_data
  
      class AddActionConnectorCallbacks(DefaultCallbacks):
          def on_create_policy(self, *, policy_id, policy) -> None:
              policy.action_connectors.append(
                  CheckInputDictActionConnector(
                      ConnectorContext.from_policy(policy)
                  )
              )
  
      config = (
          PPOConfig()
          .environment("basic_multiagent")
          .framework("torch")
          .training(
              # Specifically ask for a batch of 200 samples.
              train_batch_size=200,
          )
          .callbacks(
              callbacks_class=AddActionConnectorCallbacks,
          )
          .rollouts(
              num_envs_per_worker=1,
              num_rollout_workers=0,
              # Enable EnvRunnerV2.
              enable_connectors=True,
          )
      )
  
      algo = PPO(config)
  
      rollout_worker = algo.workers.local_worker()
      # As long as we can successfully sample(), things should be good.
      _ = rollout_worker.sample()
  
imports: import unittest
  import numpy
  import ray
  from ray.rllib.algorithms.callbacks import DefaultCallbacks
  from ray.rllib.algorithms.ppo import PPO, PPOConfig
  from ray.rllib.connectors.connector import ActionConnector, ConnectorContext
  from ray.rllib.evaluation.metrics import RolloutMetrics
  from ray.rllib.examples.env.debug_counter_env import DebugCounterEnv
  from ray.rllib.examples.env.multi_agent import BasicMultiAgent, GuessTheNumberGame
  from ray.rllib.examples.policy.random_policy import RandomPolicy
  from ray.rllib.policy.policy import PolicySpec
  from ray.tune import register_env
  from ray.rllib.policy.sample_batch import convert_ma_batch_to_sample_batch
  from ray.rllib.core.rl_module.rl_module import SingleAgentRLModuleSpec
  from ray.rllib.core.rl_module.marl_module import MultiAgentRLModuleSpec
  from ray.rllib.examples.rl_module.random_rl_module import RandomRLModule
  from ray.rllib.utils.test_utils import check
label_desc: Use image node_id 7 for calling the TestEnvRunnerV2 obj's underlying member method code with example usage: obj.test_action_connector_gets_raw_input_dict() and returns: ac_data