code: def test_output_version():
      class InputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int")
  
      class OutputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int", min_ver="0.9")
  
      class DerivedInterface1(nib.BaseInterface):
          input_spec = InputSpec
          output_spec = OutputSpec
          _version = "0.10"
          resource_monitor = False
  
      obj = DerivedInterface1()
      assert obj._check_version_requirements(obj._outputs()) == []
  
      class InputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int")
  
      class OutputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int", min_ver="0.11")
  
      class DerivedInterface1(nib.BaseInterface):
          input_spec = InputSpec
          output_spec = OutputSpec
          _version = "0.10"
          resource_monitor = False
  
      obj = DerivedInterface1()
      assert obj._check_version_requirements(obj._outputs()) == ["foo"]
  
      class InputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int")
  
      class OutputSpec(nib.TraitedSpec):
          foo = nib.traits.Int(desc="a random int", min_ver="0.11")
  
      class DerivedInterface1(nib.BaseInterface):
          input_spec = InputSpec
          output_spec = OutputSpec
          _version = "0.10"
          resource_monitor = False
  
          def _run_interface(self, runtime):
              return runtime
  
          def _list_outputs(self):
              return {"foo": 1}
  
      obj = DerivedInterface1()
      with pytest.raises(KeyError):
          obj.run()
  
imports: import os
  import simplejson
  import logging
  import pytest
  from unittest import mock
  from ....None import config
  from ....testing import example_data
  from ...None import base
  from ..support import _inputs_help
label_desc: Use image node_id 14 for calling a global function with example usage: test_output_version() and returns: runtime, dict