code: def test_default_resource_request_plus_manual_leads_to_error(self):
      config = (
          PPOConfig()
          .training(model={"fcnet_hiddens": [10]})
          .environment("CartPole-v1")
          .rollouts(num_rollout_workers=0)
      )
  
      try:
          tune.Tuner(
              tune.with_resources(
                  PPO, PlacementGroupFactory([{"CPU": 1}])
              ),
              param_space=config,
              run_config=air.RunConfig(
                  stop={"training_iteration": 2}, verbose=2
              ),
          ).fit()
      except ValueError as e:
          assert "have been automatically set to" in e.args[0]
  
file_path: ray/rllib/tests/test_placement_groups.py
imports: import os
  import unittest
  import ray
  from ray import air
  from ray import tune
  from ray.tune import Callback
  from ray.rllib.algorithms.ppo import PPO, PPOConfig
  from ray.tune.experiment import Trial
  from ray.tune.execution.placement_groups import PlacementGroupFactory
label_desc: Use image node_id 5 for calling the TestPlacementGroups obj's underlying member method code with example usage: obj.test_default_resource_request_plus_manual_leads_to_error() without return types