code: def test_session_end_pb(self):
      end_time_secs = 1234.0
      self.assertEqual(
          summary.session_end_pb(api_pb2.STATUS_SUCCESS, end_time_secs),
          tf.compat.v1.Summary(
              value=[
                  tf.compat.v1.Summary.Value(
                      tag="_hparams_/session_end_info",
                      tensor=summary._TF_NULL_TENSOR,
                      metadata=tf.compat.v1.SummaryMetadata(
                          plugin_data=tf.compat.v1.SummaryMetadata.PluginData(
                              plugin_name="hparams",
                              content=(
                                  plugin_data_pb2.HParamsPluginData(
                                      version=0,
                                      session_end_info=(
                                          plugin_data_pb2.SessionEndInfo(
                                              status=api_pb2.STATUS_SUCCESS,
                                              end_time_secs=end_time_secs,
                                          )
                                      ),
                                  ).SerializeToString()
                              ),
                          )
                      ),
                  )
              ]
          ),
      )
  
file_path: tensorboard/tensorboard/plugins/hparams/summary_test.py
imports: import tensorflow
  from google.protobuf import struct_pb2
  from tensorboard.plugins.hparams import api_pb2
  from tensorboard.plugins.hparams import plugin_data_pb2
  from tensorboard.plugins.hparams import summary
label_desc: Use image node_id 2 for calling the SummaryTest obj's underlying member method code with example usage: obj.test_session_end_pb() without return types