"""Tests for distutils.command.install."""
from distutils
.command
.install
import install
from distutils
.core
import Distribution
from distutils
.tests
import support
class InstallTestCase(support
.TempdirManager
, unittest
.TestCase
):
def test_home_installation_scheme(self
):
# This ensure two things:
# - that --home generates the desired set of directory names
# - test --home is supported on all platforms
builddir
= self
.mkdtemp()
destination
= os
.path
.join(builddir
, "installation")
dist
= Distribution({"name": "foopkg"})
# script_name need not exist, it just need to be initialized
dist
.script_name
= os
.path
.join(builddir
, "setup.py")
dist
.command_obj
["build"] = support
.DummyCommand(
build_lib
=os
.path
.join(builddir
, "lib"),
self
.assertEqual(cmd
.install_base
, destination
)
self
.assertEqual(cmd
.install_platbase
, destination
)
def check_path(got
, expected
):
got
= os
.path
.normpath(got
)
expected
= os
.path
.normpath(expected
)
self
.assertEqual(got
, expected
)
libdir
= os
.path
.join(destination
, "lib", "python")
check_path(cmd
.install_lib
, libdir
)
check_path(cmd
.install_platlib
, libdir
)
check_path(cmd
.install_purelib
, libdir
)
check_path(cmd
.install_headers
,
os
.path
.join(destination
, "include", "python", "foopkg"))
check_path(cmd
.install_scripts
, os
.path
.join(destination
, "bin"))
check_path(cmd
.install_data
, destination
)
return unittest
.makeSuite(InstallTestCase
)
if __name__
== "__main__":
unittest
.main(defaultTest
="test_suite")