summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/tests
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2004-06-25 23:02:59 (GMT)
committerFred Drake <fdrake@acm.org>2004-06-25 23:02:59 (GMT)
commitec6229e35247ef9eff6c2af254cee4a558d1d46a (patch)
treee68a681c2a5e01ade9384e4b41ad20d43a3bb865 /Lib/distutils/tests
parent8d726eef968177acaae2a6daa7fe8fb5a8026c42 (diff)
downloadcpython-ec6229e35247ef9eff6c2af254cee4a558d1d46a.zip
cpython-ec6229e35247ef9eff6c2af254cee4a558d1d46a.tar.gz
cpython-ec6229e35247ef9eff6c2af254cee4a558d1d46a.tar.bz2
Make distutils "install --home" support all platforms.
Diffstat (limited to 'Lib/distutils/tests')
-rw-r--r--Lib/distutils/tests/test_install.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py
new file mode 100644
index 0000000..c834b91
--- /dev/null
+++ b/Lib/distutils/tests/test_install.py
@@ -0,0 +1,55 @@
+"""Tests for distutils.command.install."""
+
+import os
+import unittest
+
+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_base=builddir,
+ build_lib=os.path.join(builddir, "lib"),
+ )
+
+ cmd = install(dist)
+ cmd.home = destination
+ cmd.ensure_finalized()
+
+ 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)
+
+
+def test_suite():
+ return unittest.makeSuite(InstallTestCase)
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")