code: def test_finalize_options(self):
      dist = Distribution({"name": "xx"})
      cmd = install(dist)
  
      # must supply either prefix/exec-prefix/home or
      # install-base/install-platbase -- not both
      cmd.prefix = "prefix"
      cmd.install_base = "base"
      self.assertRaises(DistutilsOptionError, cmd.finalize_options)
  
      # must supply either home or prefix/exec-prefix -- not both
      cmd.install_base = None
      cmd.home = "home"
      self.assertRaises(DistutilsOptionError, cmd.finalize_options)
  
      # can't combine user with prefix/exec_prefix/home or
      # install_(plat)base
      cmd.prefix = None
      cmd.user = "user"
      self.assertRaises(DistutilsOptionError, cmd.finalize_options)
  
imports: import os
  import sys
  import unittest
  import site
  from test.test_support import captured_stdout, run_unittest
  from distutils import sysconfig
  from distutils.command.install import install
  from distutils.command import install
  from distutils.command.build_ext import build_ext
  from distutils.command.install import INSTALL_SCHEMES
  from distutils.core import Distribution
  from distutils.errors import DistutilsOptionError
  from distutils.extension import Extension
  from distutils.tests import support
label_desc: Use image node_id 4 for calling the InstallTestCase obj's underlying member method code with example usage: obj.test_finalize_options() without return types