code: def test_environ_custom_class(
      self, pytester: Pytester, custom_debugger_hook, arg: str
  ) -> None:
      pytester.makeconftest(
          """
              import os
              import sys
  
              os.environ['PYTHONBREAKPOINT'] = '_pytest._CustomDebugger.set_trace'
  
              def pytest_configure(config):
                  config.add_cleanup(check_restored)
  
              def check_restored():
                  assert sys.breakpointhook == sys.__breakpointhook__
  
              def test_check():
                  import _pytest
                  assert sys.breakpointhook is _pytest._CustomDebugger.set_trace
          """
      )
      pytester.makepyfile(
          """
              def test_nothing(): pass
          """
      )
      args = (arg,) if arg else ()
      result = pytester.runpytest_subprocess(*args)
      result.stdout.fnmatch_lines(["*1 passed in *"])
  
imports: import os
  import sys
  from typing import List
  import _pytest._code
  import pytest
  from _pytest.debugging import _validate_usepdb_cls
  from _pytest.monkeypatch import MonkeyPatch
  from _pytest.pytester import Pytester
label_desc: Use image node_id 3 for calling the TestDebuggingBreakpoints obj's underlying member method code with example usage: obj.test_environ_custom_class(pytester, custom_debugger_hook, arg) without return types