code: def test_user_site(self):
      import site
  
      dist = Distribution({"name": "xx"})
      cmd = build_ext(dist)
  
      # making sure the user option is there
      options = [name for name, short, label in cmd.user_options]
      self.assertIn("user", options)
  
      # setting a value
      cmd.user = 1
  
      # setting user based lib and include
      lib = os.path.join(site.USER_BASE, "lib")
      incl = os.path.join(site.USER_BASE, "include")
      os.mkdir(lib)
      os.mkdir(incl)
  
      cmd.ensure_finalized()
  
      # see if include_dirs and library_dirs were set
      self.assertIn(lib, cmd.library_dirs)
      self.assertIn(lib, cmd.rpath)
      self.assertIn(incl, cmd.include_dirs)
  
imports: import sys
  import os
  from StringIO import StringIO
  import textwrap
  from distutils.core import Extension, Distribution
  from distutils.command.build_ext import build_ext
  from distutils import sysconfig
  from distutils.tests import support
  from distutils.errors import DistutilsSetupError, CompileError, DistutilsPlatformError
  import unittest
  from test import test_support
label_desc: Use image node_id 5 for calling the BuildExtTestCase obj's underlying member method code with example usage: obj.test_user_site() without return types