class_docstr: Test ability to marshall metric protos and invalid input.
class_docstr_tok: ["Test","ability","to","marshall","metric","protos","and","invalid","input","."]
code: def test_no_value(self):
      st.metric("label_test", None)
      c = self.get_delta_from_queue().new_element.metric
      self.assertEqual(c.label, "label_test")
      # This is an em dash. Not a regular "-"
      self.assertEqual(c.body, "—")
      self.assertEqual(
          c.label_visibility.value,
          LabelVisibilityMessage.LabelVisibilityOptions.VISIBLE,
      )
  
imports: from parameterized import parameterized
  import streamlit
  from streamlit.errors import StreamlitAPIException
  from streamlit.proto.LabelVisibilityMessage_pb2 import LabelVisibilityMessage
  from streamlit.proto.Metric_pb2 import Metric
  from streamlit.type_util import _LOGGER
  from tests.delta_generator_test_case import DeltaGeneratorTestCase
label_desc: Use image node_id 1 for calling the MetricTest obj's underlying member method code with example usage: obj.test_no_value() without return types