code: def test_coroutine(app):
      options = {"members": None}
      actual = do_autodoc(
          app, "class", "target.coroutine.AsyncClass", options
      )
      assert list(actual) == [
          "",
          ".. py:class:: AsyncClass()",
          "   :module: target.coroutine",
          "",
          "",
          "   .. py:method:: AsyncClass.do_asyncgen()",
          "      :module: target.coroutine",
          "      :async:",
          "",
          "      A documented async generator",
          "",
          "",
          "   .. py:method:: AsyncClass.do_coroutine()",
          "      :module: target.coroutine",
          "      :async:",
          "",
          "      A documented coroutine function",
          "",
          "",
          "   .. py:method:: AsyncClass.do_coroutine2()",
          "      :module: target.coroutine",
          "      :async:",
          "      :classmethod:",
          "",
          "      A documented coroutine classmethod",
          "",
          "",
          "   .. py:method:: AsyncClass.do_coroutine3()",
          "      :module: target.coroutine",
          "      :async:",
          "      :staticmethod:",
          "",
          "      A documented coroutine staticmethod",
          "",
      ]
  
imports: from __future__ import annotations
  import typing
  from typing import Union
  import pytest
  from tests.test_extensions.test_ext_autodoc import do_autodoc
label_desc: Use image node_id 18 for calling a global function with example usage: test_coroutine(app) without return types