docstr: Test that the WandbLoggerCallback destructor forcefully cleans up
  logging actors.
docstr_tok: ["Test","that","the","WandbLoggerCallback","destructor","forcefully","cleans","up","logging","actors","."]
code: def test_wandb_destructor(self, trial):
      """Test that the WandbLoggerCallback destructor forcefully cleans up
      logging actors."""
  
      class SlowFinishMockWandbAPI(_MockWandbAPI):
          def finish(self):
              time.sleep(5)
  
      logger = get_mock_wandb_logger(
          mock_api_cls=SlowFinishMockWandbAPI,
          upload_timeout=1.0,
      )
  
      logger.setup()
      # Triggers logging actor run loop
      logger.on_trial_start(0, [], trial)
      actor = logger._trial_logging_actors[trial]
      del logger
      gc.collect()
      with pytest.raises(RayActorError):
          ray.get(actor.get_state.remote())
  
imports: import gc
  from pathlib import Path
  import numpy
  import os
  import pytest
  import time
  import tempfile
  from unittest.mock import Mock, patch
  import ray
  from ray.exceptions import RayActorError
  from ray.air.integrations.wandb import WandbLoggerCallback, _QueueItem, _WandbLoggingActor
  from ray.air.integrations.wandb import WANDB_ENV_VAR, WANDB_GROUP_ENV_VAR, WANDB_POPULATE_RUN_LOCATION_HOOK, WANDB_PROJECT_ENV_VAR, WANDB_SETUP_API_KEY_HOOK
  from ray.tune.execution.placement_groups import PlacementGroupFactory
  from ray.air.tests.mocked_wandb_integration import _MockWandbAPI, _MockWandbLoggingActor, Trial, WandbTestExperimentLogger, get_mock_wandb_logger
label_desc: Use image node_id 16 for calling the TestWandbLogger obj's underlying member method code with example usage: obj.test_wandb_destructor(trial) without return types