code: def test_build_libraries(self):
      pkg_dir, dist = self.create_dist()
      cmd = build_clib(dist)
  
      class FakeCompiler:
          def compile(*args, **kw):
              pass
  
          create_static_lib = compile
  
      cmd.compiler = FakeCompiler()
  
      # build_libraries is also doing a bit of typo checking
      lib = [("name", {"sources": "notvalid"})]
      self.assertRaises(DistutilsSetupError, cmd.build_libraries, lib)
  
      lib = [("name", {"sources": list()})]
      cmd.build_libraries(lib)
  
      lib = [("name", {"sources": tuple()})]
      cmd.build_libraries(lib)
  
file_path: catboost/contrib/tools/python/src/Lib/distutils/tests/test_build_clib.py
imports: import unittest
  import os
  import sys
  from test.test_support import run_unittest
  from distutils.command.build_clib import build_clib
  from distutils.errors import DistutilsSetupError
  from distutils.tests import support
  from distutils.spawn import find_executable
label_desc: Use image node_id 3 for calling the BuildCLibTestCase obj's underlying member method code with example usage: obj.test_build_libraries() without return types