def METHOD_NAME(self, tmp_path):
    (tmp_path / "foo.eclass").write_text(FOO_ECLASS)
    doc = eclass.EclassDoc(str(tmp_path / "foo.eclass"))
    assert doc.name == "foo.eclass"
    assert doc.vcsurl == "https://example.com/foo.eclass"
    assert doc.blurb == "Test eclass."
    assert doc.deprecated == "bar or frobnicate"
    assert doc.raw_provides == ("bar",)
    assert doc.maintainers == ("Random Person <maintainer@random.email>",)
    assert doc.authors == (
        "Another Person <another@random.email>",
        "Random Person <maintainer@random.email>",
    )
    assert doc.bugreports == "::\n\n  Report bugs somewhere."
    assert doc.description == (
        "::\n\n"
        "  Yadda yadda yadda.\n"
        "  Lots to say here.\n\n"
        "  Really, very interesting eclass.\n\n"
        "How to use it\n"
        "~~~~~~~~~~~~~\n"
        "::\n\n"
        "  Somehow."
    )
    assert doc.example == (
        "::\n\n"
        "  inherit foo\n\n"
        "  src_prepare() {\n"
        "    foo_public_func\n"
        "  }"
    )
    assert doc.supported_eapis == frozenset(map(str, range(8)))
    assert doc.function_names == frozenset(
        ("_foo_internal_func", "foo_public_func")
    )
    assert doc.internal_function_names == frozenset(("_foo_internal_func",))
    assert doc.function_variable_names == frozenset(
        ("FOO_PUBLIC_VAR", "_FOO_INTERNAL_VAR")
    )
    assert doc.variable_names == frozenset(
        (
            "FOO_PUBLIC_ECLASS_VAR",
            "_FOO_INTERNAL_ECLASS_VAR",
            "FOO_ANOTHER_ECLASS_VAR",
        )
    )
    assert doc.internal_variable_names == frozenset(("_FOO_INTERNAL_ECLASS_VAR",))
    assert len(doc.functions) == 2
    assert doc.functions[0] == {
        "name": "_foo_internal_func",
        "returns": "nothing special",
        "deprecated": False,
        "internal": True,
        "maintainers": ("Some Person <someone@random.email>",),
        "description": "::\n\n  Internal stub function.",
        "usage": "<bar> [<baz>]",
    }
    assert doc.functions[1] == {
        "name": "foo_public_func",
        "returns": None,
        "deprecated": "bar_public_func",
        "internal": False,
        "maintainers": None,
        "description": "::\n\n  Public stub function.",
        "usage": None,
    }
    assert len(doc.function_variables) == 2
    assert doc.function_variables[0] == {
        "name": "_FOO_INTERNAL_VAR",
        "deprecated": False,
        "default_unset": True,
        "internal": True,
        "required": False,
        "description": "::\n\n  Internal variable for foo_public_func.",
    }
    assert doc.function_variables[1] == {
        "name": "FOO_PUBLIC_VAR",
        "deprecated": "BAR_PUBLIC_VAR",
        "default_unset": False,
        "internal": False,
        "required": True,
        "description": "::\n\n  Public variable for foo_public_func.",
    }
    assert len(doc.variables) == 3
    assert doc.variables[0] == {
        "name": "_FOO_INTERNAL_ECLASS_VAR",
        "deprecated": False,
        "default_unset": True,
        "internal": True,
        "required": False,
        "pre_inherit": False,
        "user_variable": False,
        "output_variable": False,
        "description": "::\n\n  Internal variable.",
    }
    assert doc.variables[1] == {
        "name": "FOO_PUBLIC_ECLASS_VAR",
        "deprecated": "BAR_PUBLIC_ECLASS_VAR",
        "default_unset": False,
        "internal": False,
        "required": True,
        "pre_inherit": True,
        "user_variable": False,
        "output_variable": False,
        "description": "::\n\n  Public variable.",
    }
    assert doc.variables[2] == {
        "name": "FOO_ANOTHER_ECLASS_VAR",
        "deprecated": False,
        "default_unset": False,
        "internal": False,
        "required": False,
        "pre_inherit": False,
        "user_variable": False,
        "output_variable": False,
        "description": "::\n\n  Yet another variable.",
    }