code: def testConstructor(self):
      ctx = GReqCtx()
      greq = MPI.Grequest.Start(ctx.query, ctx.free, ctx.cancel)
      dupe = MPI.Grequest(greq)
      self.assertIs(type(dupe), MPI.Grequest)
      self.assertEqual(dupe, greq)
      dupe = MPI.Grequest.fromhandle(greq.handle)
      self.assertIs(type(dupe), MPI.Grequest)
      self.assertEqual(dupe, greq)
      dupe = MPI.Grequest.f2py(greq.py2f())
      self.assertIs(type(dupe), MPI.Grequest)
      self.assertEqual(dupe, greq)
      dupe = MPI.Request(greq)
      self.assertIs(type(dupe), MPI.Request)
      self.assertEqual(dupe, greq)
      with self.assertRaises(TypeError):
          dupe = MPI.Prequest(greq)
      greq.Cancel()
      greq.Complete()
      greq.Wait()
  
file_path: mpi4py/test/test_grequest.py
imports: from mpi4py import MPI
  import mpiunittest
label_desc: Use image node_id 1 for calling the TestGrequest obj's underlying member method code with example usage: obj.testConstructor() without return types