code: def test_required_models():
      class SomeModel(Model):
          CONFIGURATIONS = {"model": {}}
  
          def _predict(self, item):
              return item
  
      class SomeOtherModel(Model):
          CONFIGURATIONS = {"other_model": {}}
  
          def _predict(self, item):
              return item
  
      lib = ModelLibrary(
          required_models=[], models=[SomeModel, SomeOtherModel]
      )
      assert len(lib.models) == 0
      assert lib.required_models == {}
  
      lib = ModelLibrary(models=[SomeModel, SomeOtherModel])
      assert len(lib.models) == 2
      assert lib.required_models == {"model": {}, "other_model": {}}
  
imports: import asyncio
  import os
  import pytest
  from modelkit.assets.errors import AssetDoesNotExistError, InvalidAssetSpecError
  from modelkit.core import errors
  from modelkit.core.library import ConfigurationNotFoundException, ModelLibrary, download_assets, load_model
  from modelkit.core.model import Asset, AsyncModel, Model
  from modelkit.core.model_configuration import ModelConfiguration, _configurations_from_objects, configure, list_assets
  from modelkit.core.settings import LibrarySettings
  from tests import TEST_DIR, testmodels
  from tests.assets.test_versioning import test_versioning
label_desc: Use image node_id 14 for calling a global function with example usage: test_required_models() and returns: item, item