--- /dev/null
+"""Tests for distutils.command.install_scripts."""\r
+\r
+import os\r
+import unittest\r
+\r
+from distutils.command.install_scripts import install_scripts\r
+from distutils.core import Distribution\r
+\r
+from distutils.tests import support\r
+from test.test_support import run_unittest\r
+\r
+\r
+class InstallScriptsTestCase(support.TempdirManager,\r
+ support.LoggingSilencer,\r
+ unittest.TestCase):\r
+\r
+ def test_default_settings(self):\r
+ dist = Distribution()\r
+ dist.command_obj["build"] = support.DummyCommand(\r
+ build_scripts="/foo/bar")\r
+ dist.command_obj["install"] = support.DummyCommand(\r
+ install_scripts="/splat/funk",\r
+ force=1,\r
+ skip_build=1,\r
+ )\r
+ cmd = install_scripts(dist)\r
+ self.assertTrue(not cmd.force)\r
+ self.assertTrue(not cmd.skip_build)\r
+ self.assertTrue(cmd.build_dir is None)\r
+ self.assertTrue(cmd.install_dir is None)\r
+\r
+ cmd.finalize_options()\r
+\r
+ self.assertTrue(cmd.force)\r
+ self.assertTrue(cmd.skip_build)\r
+ self.assertEqual(cmd.build_dir, "/foo/bar")\r
+ self.assertEqual(cmd.install_dir, "/splat/funk")\r
+\r
+ def test_installation(self):\r
+ source = self.mkdtemp()\r
+ expected = []\r
+\r
+ def write_script(name, text):\r
+ expected.append(name)\r
+ f = open(os.path.join(source, name), "w")\r
+ try:\r
+ f.write(text)\r
+ finally:\r
+ f.close()\r
+\r
+ write_script("script1.py", ("#! /usr/bin/env python2.3\n"\r
+ "# bogus script w/ Python sh-bang\n"\r
+ "pass\n"))\r
+ write_script("script2.py", ("#!/usr/bin/python\n"\r
+ "# bogus script w/ Python sh-bang\n"\r
+ "pass\n"))\r
+ write_script("shell.sh", ("#!/bin/sh\n"\r
+ "# bogus shell script w/ sh-bang\n"\r
+ "exit 0\n"))\r
+\r
+ target = self.mkdtemp()\r
+ dist = Distribution()\r
+ dist.command_obj["build"] = support.DummyCommand(build_scripts=source)\r
+ dist.command_obj["install"] = support.DummyCommand(\r
+ install_scripts=target,\r
+ force=1,\r
+ skip_build=1,\r
+ )\r
+ cmd = install_scripts(dist)\r
+ cmd.finalize_options()\r
+ cmd.run()\r
+\r
+ installed = os.listdir(target)\r
+ for name in expected:\r
+ self.assertTrue(name in installed)\r
+\r
+\r
+def test_suite():\r
+ return unittest.makeSuite(InstallScriptsTestCase)\r
+\r
+if __name__ == "__main__":\r
+ run_unittest(test_suite())\r