code: def test_object_info_reply(self):
      msg = self.msg(
          "object_info_reply",
          {
              "name": "foo",
              "found": True,
              "status": "ok",
              "definition": "foo(a=5)",
              "docstring": "the docstring",
          },
      )
      v4, v5 = self.adapt(msg)
      self.assertEqual(v5["header"]["msg_type"], "inspect_reply")
      v4c = v4["content"]
      v5c = v5["content"]
      self.assertEqual(
          sorted(v5c), ["data", "found", "metadata", "status"]
      )
      text = v5c["data"]["text/plain"]
      self.assertEqual(
          text, "\n".join([v4c["definition"], v4c["docstring"]])
      )
  
imports: import copy
  import json
  from unittest import TestCase
  from jupyter_client.adapter import V4toV5, adapt, code_to_line
  from jupyter_client.session import Session
label_desc: Use image node_id 10 for calling the V4toV5TestCase obj's underlying member method code with example usage: obj.test_object_info_reply() without return types