code: def testPyMethods(self):
      INFO = self.INFO
  
      self.assertEqual(len(INFO), 0)
      self.assertNotIn("key", INFO)
      self.assertEqual(INFO.keys(), [])
      self.assertEqual(INFO.values(), [])
      self.assertEqual(INFO.items(), [])
  
      INFO["key"] = "value"
      self.assertEqual(len(INFO), 1)
      self.assertIn("key", INFO)
      self.assertEqual(INFO["key"], "value")
      for key in INFO:
          self.assertEqual(key, "key")
      self.assertEqual(INFO.keys(), ["key"])
      self.assertEqual(INFO.values(), ["value"])
      self.assertEqual(INFO.items(), [("key", "value")])
      self.assertEqual(key, "key")
      del INFO["key"]
      self.assertEqual(len(INFO), 0)
  
      INFO["key"] = "value"
      self.assertEqual(INFO.pop("key"), "value")
      self.assertEqual(len(INFO), 0)
      self.assertEqual(INFO.pop("key", "value"), "value")
      self.assertRaises(KeyError, INFO.pop, "key")
      INFO["key1"] = "value1"
      INFO["key2"] = "value2"
      self.assertEqual(INFO.pop("key1"), "value1")
      self.assertEqual(len(INFO), 1)
      self.assertEqual(INFO.pop("key2"), "value2")
      self.assertEqual(len(INFO), 0)
  
      INFO["key"] = "value"
      self.assertEqual(INFO.popitem(), ("key", "value"))
      self.assertEqual(len(INFO), 0)
      self.assertRaises(KeyError, INFO.popitem)
      INFO["key1"] = "value1"
      INFO["key2"] = "value2"
      self.assertEqual(INFO.popitem(), ("key2", "value2"))
      self.assertEqual(len(INFO), 1)
      self.assertEqual(INFO.popitem(), ("key1", "value1"))
      self.assertEqual(len(INFO), 0)
  
      self.assertEqual(len(INFO), 0)
      self.assertNotIn("key", INFO)
      self.assertEqual(INFO.keys(), [])
      self.assertEqual(INFO.values(), [])
      self.assertEqual(INFO.items(), [])
  
      def getitem():
          INFO["key"]
  
      self.assertRaises(KeyError, getitem)
  
      def delitem():
          del INFO["key"]
  
      self.assertRaises(KeyError, delitem)
  
      INFO.clear()
      INFO.update([("key1", "value1")])
      self.assertEqual(len(INFO), 1)
      self.assertEqual(INFO["key1"], "value1")
      self.assertEqual(INFO.get("key1"), "value1")
      self.assertIsNone(INFO.get("key2"))
      self.assertEqual(INFO.get("key2", "value2"), "value2")
      INFO.update(key2="value2")
      self.assertEqual(len(INFO), 2)
      self.assertEqual(INFO["key1"], "value1")
      self.assertEqual(INFO["key2"], "value2")
      self.assertEqual(INFO.get("key1"), "value1")
      self.assertEqual(INFO.get("key2"), "value2")
      self.assertIsNone(INFO.get("key3"))
      self.assertEqual(INFO.get("key3", "value3"), "value3")
      INFO.update([("key1", "newval1")], key2="newval2")
      self.assertEqual(len(INFO), 2)
      self.assertEqual(INFO["key1"], "newval1")
      self.assertEqual(INFO["key2"], "newval2")
      self.assertEqual(INFO.get("key1"), "newval1")
      self.assertEqual(INFO.get("key2"), "newval2")
      self.assertIsNone(INFO.get("key3"))
      self.assertEqual(INFO.get("key3", "newval3"), "newval3")
      INFO.update(dict(key1="val1", key2="val2", key3="val3"))
      self.assertEqual(len(INFO), 3)
      self.assertEqual(INFO["key1"], "val1")
      self.assertEqual(INFO["key2"], "val2")
      self.assertEqual(INFO["key3"], "val3")
      dupe = INFO.copy()
      self.assertEqual(INFO.items(), dupe.items())
      dupe.Free()
      INFO.clear()
      self.assertEqual(len(INFO), 0)
      self.assertIsNone(INFO.get("key1"))
      self.assertIsNone(INFO.get("key2"))
      self.assertIsNone(INFO.get("key3"))
      self.assertEqual(INFO.get("key1", "value1"), "value1")
      self.assertEqual(INFO.get("key2", "value2"), "value2")
      self.assertEqual(INFO.get("key3", "value3"), "value3")
  
imports: from mpi4py import MPI
  import mpiunittest
  import sys
label_desc: Use image node_id 11 for calling the TestInfo obj's underlying member method code with example usage: obj.testPyMethods() without return types