code: def test_pipe_handle(self):
      h, _ = windows_utils.pipe(overlapped=(True, True))
      _winapi.CloseHandle(_)
      p = windows_utils.PipeHandle(h)
      self.assertEqual(p.fileno(), h)
      self.assertEqual(p.handle, h)
  
      # check garbage collection of p closes handle
      with warnings.catch_warnings():
          warnings.filterwarnings("ignore", "", ResourceWarning)
          del p
          support.gc_collect()
      try:
          _winapi.CloseHandle(h)
      except OSError as e:
          self.assertEqual(e.winerror, 6)  # ERROR_INVALID_HANDLE
      else:
          raise RuntimeError("expected ERROR_INVALID_HANDLE")
  
file_path: cpython/Lib/test/test_asyncio/test_windows_utils.py
imports: import sys
  import unittest
  import warnings
  import _overlapped
  import _winapi
  import asyncio
  from asyncio import windows_utils
  from test import support
label_desc: Use image node_id 2 for calling the PipeTests obj's underlying member method code with example usage: obj.test_pipe_handle() without return types