code: def test_undocumented_uninitialized_attributes(app):
      options = {
          "members": None,
          "inherited-members": None,
          "undoc-members": None,
      }
      actual = do_autodoc(
          app,
          "class",
          "target.uninitialized_attributes.Derived",
          options,
      )
      assert list(actual) == [
          "",
          ".. py:class:: Derived()",
          "   :module: target.uninitialized_attributes",
          "",
          "",
          "   .. py:attribute:: Derived.attr1",
          "      :module: target.uninitialized_attributes",
          "      :type: int",
          "",
          "      docstring",
          "",
          "",
          "   .. py:attribute:: Derived.attr2",
          "      :module: target.uninitialized_attributes",
          "      :type: str",
          "",
          "",
          "   .. py:attribute:: Derived.attr3",
          "      :module: target.uninitialized_attributes",
          "      :type: int",
          "",
          "      docstring",
          "",
          "",
          "   .. py:attribute:: Derived.attr4",
          "      :module: target.uninitialized_attributes",
          "      :type: str",
          "",
      ]
  
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 5 for calling a global function with example usage: test_undocumented_uninitialized_attributes(app) without return types