code: def test_describe_output_multiple_possible():
      """
      This pipeline has two outputs:
      {"b": {"output_b": {"type": str}}, "a": {"output_a": {"type": str}}}
      """
      A = component_class(
          "A",
          input_types={"input_a": str},
          output={"output_a": "str", "output_b": "str"},
      )
      B = component_class(
          "B", input_types={"input_b": str}, output={"output_b": "str"}
      )
  
      pipe = Pipeline()
      pipe.add_component("a", A())
      pipe.add_component("b", B())
      pipe.connect("a.output_b", "b.input_b")
  
      assert pipe.outputs() == {
          "b": {"output_b": {"type": str}},
          "a": {"output_a": {"type": str}},
      }
  
imports: from typing import Optional
  import logging
  import pytest
  from haystack.core.pipeline import Pipeline
  from haystack.core.component.sockets import InputSocket, OutputSocket
  from haystack.core.errors import PipelineMaxLoops, PipelineError, PipelineRuntimeError
  from haystack.testing.sample_components import AddFixedValue, Threshold, Double, Sum
  from haystack.testing.factory import component_class
label_desc: Use image node_id 15 for calling a global function with example usage: test_describe_output_multiple_possible() without return types