code: def test_custom_batch_sampler_no_sampler():
      """Tests whether appropriate error is raised when the custom `BatchSampler` does not support sampler argument."""
  
      class MyBatchSampler(BatchSampler):
          # Custom batch sampler, without sampler argument.
          def __init__(self, extra_arg):
              self.extra_arg = extra_arg
              super().__init__(RandomSampler(range(10)), 10, False)
  
      with _replace_dunder_methods(BatchSampler):
          # instantiate within `_replace_dunder_method` context manager, simulating `*_dataloader` hooks
          batch_sampler = MyBatchSampler("random_str")
      dataloader = DataLoader(range(10), batch_sampler=batch_sampler)
  
      # assert that passed information got saved
      assert dataloader.batch_sampler.__pl_saved_args == ("random_str",)
      assert dataloader.batch_sampler.__pl_saved_kwargs == {}
      assert dataloader.batch_sampler.__pl_saved_arg_names == (
          "extra_arg",
      )
      assert dataloader.batch_sampler.__pl_saved_default_kwargs == {}
  
      # Assert that error is raised
      with pytest.raises(
          TypeError, match="sampler into the batch sampler"
      ):
          _ = _update_dataloader(
              dataloader,
              dataloader.sampler,
              mode=RunningStage.PREDICTING,
          )
  
imports: from dataclasses import dataclass
  from unittest.mock import Mock
  import numpy
  import pytest
  import torch
  from lightning.fabric.utilities.data import _replace_dunder_methods
  from lightning.pytorch import Trainer
  from lightning.pytorch.demos.boring_classes import RandomDataset, RandomIterableDataset
  from lightning.pytorch.overrides.distributed import _IndexBatchSamplerWrapper
  from lightning.pytorch.trainer.states import RunningStage
  from lightning.pytorch.utilities.data import _get_dataloader_init_args_and_kwargs, _update_dataloader, extract_batch_size, has_len_all_ranks, warning_cache
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
  from lightning_utilities.test.warning import no_warning_call
  from torch import Tensor
  from torch.utils.data import BatchSampler, DataLoader, RandomSampler
label_desc: Use image node_id 8 for calling a global function with example usage: test_custom_batch_sampler_no_sampler() without return types