code: def test_exported_symbol(self):
      exporter = exported_api.ExportedApi()
      p = extractor.Parser(
          exporter,
          decorator="extractor.api_export.tf_export",
          api_name="tf",
      )
      p.process(
          "test.py",
          """# 1
  from extractor import api_export  # 2
  from extractor import api_export as ae  # 3
  try:  # 4
    from extractor.api_export import tf_export  # 5
  except ImportError:  # 6
    pass  # 7
  from extractor.api_export import tf_export as tfe # 8
  from extractor.api_export import other_export  # 9
  _a = api_export.tf_export("a")(foo)  # 10
  api_export.tf_export("b", v1=["v1_b"])(_b)  # 11
  tfe("c")(_c)  # 12
  @ae.tf_export("d")  # 13
  class _D():  # 14
    pass  # 15
  @api_export.tf_export("e", "e_v2", v1=[])  # 16
  def _e():  # 17
    pass  # 18
  tf_export(v1=["f", "f_alias"])(  # 19
      dispatch.dispatch(deprecation(_f))  # 20
  )  # 21
  @other_export("not-exported")  # 22
  def _not_exported():  # 23
    pass  # 24
          """,
      )
      self.assertEqual(
          exporter,
          exported_api.ExportedApi(
              symbols=[
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=10,
                      symbol_name="_a",
                      v1_apis=("tf.a",),
                      v2_apis=("tf.a",),
                  ),
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=11,
                      symbol_name="_b",
                      v1_apis=("tf.v1_b",),
                      v2_apis=("tf.b",),
                  ),
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=12,
                      symbol_name="_c",
                      v1_apis=("tf.c",),
                      v2_apis=("tf.c",),
                  ),
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=13,
                      symbol_name="_D",
                      v1_apis=("tf.d",),
                      v2_apis=("tf.d",),
                  ),
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=16,
                      symbol_name="_e",
                      v1_apis=(),
                      v2_apis=("tf.e", "tf.e_v2"),
                  ),
                  exported_api.ExportedSymbol(
                      file_name="test.py",
                      line_no=19,
                      symbol_name="_f",
                      v1_apis=("tf.f", "tf.f_alias"),
                      v2_apis=(),
                  ),
              ],
          ),
      )
  
file_path: tensorflow/tensorflow/python/tools/api/generator2/extractor/extractor_test.py
imports: from absl.testing import absltest
  from tensorflow.python.tools.api.generator2.extractor import extractor
  from tensorflow.python.tools.api.generator2.shared import exported_api
label_desc: Use image node_id 3 for calling the ParserTest obj's underlying member method code with example usage: obj.test_exported_symbol() without return types