code: def test_handle_extra_path(self):
      dist = Distribution({"name": "xx", "extra_path": "path,dirs"})
      cmd = install(dist)
  
      # two elements
      cmd.handle_extra_path()
      self.assertEqual(cmd.extra_path, ["path", "dirs"])
      self.assertEqual(cmd.extra_dirs, "dirs")
      self.assertEqual(cmd.path_file, "path")
  
      # one element
      cmd.extra_path = ["path"]
      cmd.handle_extra_path()
      self.assertEqual(cmd.extra_path, ["path"])
      self.assertEqual(cmd.extra_dirs, "path")
      self.assertEqual(cmd.path_file, "path")
  
      # none
      dist.extra_path = cmd.extra_path = None
      cmd.handle_extra_path()
      self.assertEqual(cmd.extra_path, None)
      self.assertEqual(cmd.extra_dirs, "")
      self.assertEqual(cmd.path_file, None)
  
      # three elements (no way !)
      cmd.extra_path = "path,dirs,again"
      self.assertRaises(DistutilsOptionError, cmd.handle_extra_path)
  
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 3 for calling the InstallTestCase obj's underlying member method code with example usage: obj.test_handle_extra_path() without return types