code: def test_model_api(self):
      model = MLModel(self.spec)
      assert model is not None
  
      model.author = "Test author"
      assert model.author == "Test author"
      assert (
          model.get_spec().description.metadata.author == "Test author"
      )
  
      model.license = "Test license"
      assert model.license == "Test license"
      assert (
          model.get_spec().description.metadata.license
          == "Test license"
      )
  
      model.short_description = "Test model"
      assert model.short_description == "Test model"
      assert (
          model.get_spec().description.metadata.shortDescription
          == "Test model"
      )
  
      model.version = "1.3"
      assert model.version == "1.3"
      assert (
          model.get_spec().description.metadata.versionString == "1.3"
      )
  
      model.input_description["feature_1"] = "This is feature 1"
      assert model.input_description["feature_1"] == "This is feature 1"
  
      model.output_description["output"] = "This is output"
      assert model.output_description["output"] == "This is output"
  
      package = tempfile.TemporaryDirectory(suffix=".mlpackage")
      package.cleanup()
  
      model.save(package.name)
      loaded_model = MLModel(package.name)
  
      assert loaded_model.author == "Test author"
      assert loaded_model.license == "Test license"
      assert loaded_model.short_description == "Test model"
      assert (
          loaded_model.input_description["feature_1"]
          == "This is feature 1"
      )
      assert (
          loaded_model.output_description["output"] == "This is output"
      )
  
      # cleanup
      _remove_path(package.name)
  
imports: import os
  import shutil
  import tempfile
  import numpy
  import pytest
  import coremltools
  from coremltools import ComputeUnit, utils
  from coremltools._deps import _HAS_TORCH
  from coremltools.converters.mil import Builder
  from coremltools.libmodelpackage import ModelPackage
  from coremltools.models import MLModel
  from coremltools.models.utils import _MLPACKAGE_AUTHOR_NAME, _WEIGHTS_DIR_NAME
  from coremltools.proto import Model_pb2
label_desc: Use image node_id 3 for calling the TestMLModel obj's underlying member method code with example usage: obj.test_model_api() without return types