docstr: Test the specified socket method.
  
  The method is run at most `count` times and must raise a TimeoutError
  within `timeout` + self.fuzz seconds.
code: def _sock_operation(self, count, timeout, method, *args):
      """
      Test the specified socket method.
  
      The method is run at most `count` times and must raise a TimeoutError
      within `timeout` + self.fuzz seconds.
      """
      self.sock.settimeout(timeout)
      method = getattr(self.sock, method)
      for i in range(count):
          t1 = time.monotonic()
          try:
              method(*args)
          except TimeoutError as e:
              delta = time.monotonic() - t1
              break
      else:
          self.fail("TimeoutError was not raised")
      # These checks should account for timing unprecision
      self.assertLess(delta, timeout + self.fuzz)
      self.assertGreater(delta, timeout - 1.0)
  
imports: import functools
  import unittest
  from test import support
  from test.support import socket_helper
  import time
  import errno
  import socket
label_desc: Use image node_id 2 for calling the TimeoutTestCase obj's underlying member method code with example usage: obj._sock_operation(count, timeout, method) without return types