]>
Commit | Line | Data |
---|---|---|
4710c53d | 1 | """Tests for distutils.command.install_scripts."""\r |
2 | \r | |
3 | import os\r | |
4 | import unittest\r | |
5 | \r | |
6 | from distutils.command.install_scripts import install_scripts\r | |
7 | from distutils.core import Distribution\r | |
8 | \r | |
9 | from distutils.tests import support\r | |
10 | from test.test_support import run_unittest\r | |
11 | \r | |
12 | \r | |
13 | class InstallScriptsTestCase(support.TempdirManager,\r | |
14 | support.LoggingSilencer,\r | |
15 | unittest.TestCase):\r | |
16 | \r | |
17 | def test_default_settings(self):\r | |
18 | dist = Distribution()\r | |
19 | dist.command_obj["build"] = support.DummyCommand(\r | |
20 | build_scripts="/foo/bar")\r | |
21 | dist.command_obj["install"] = support.DummyCommand(\r | |
22 | install_scripts="/splat/funk",\r | |
23 | force=1,\r | |
24 | skip_build=1,\r | |
25 | )\r | |
26 | cmd = install_scripts(dist)\r | |
27 | self.assertTrue(not cmd.force)\r | |
28 | self.assertTrue(not cmd.skip_build)\r | |
29 | self.assertTrue(cmd.build_dir is None)\r | |
30 | self.assertTrue(cmd.install_dir is None)\r | |
31 | \r | |
32 | cmd.finalize_options()\r | |
33 | \r | |
34 | self.assertTrue(cmd.force)\r | |
35 | self.assertTrue(cmd.skip_build)\r | |
36 | self.assertEqual(cmd.build_dir, "/foo/bar")\r | |
37 | self.assertEqual(cmd.install_dir, "/splat/funk")\r | |
38 | \r | |
39 | def test_installation(self):\r | |
40 | source = self.mkdtemp()\r | |
41 | expected = []\r | |
42 | \r | |
43 | def write_script(name, text):\r | |
44 | expected.append(name)\r | |
45 | f = open(os.path.join(source, name), "w")\r | |
46 | try:\r | |
47 | f.write(text)\r | |
48 | finally:\r | |
49 | f.close()\r | |
50 | \r | |
51 | write_script("script1.py", ("#! /usr/bin/env python2.3\n"\r | |
52 | "# bogus script w/ Python sh-bang\n"\r | |
53 | "pass\n"))\r | |
54 | write_script("script2.py", ("#!/usr/bin/python\n"\r | |
55 | "# bogus script w/ Python sh-bang\n"\r | |
56 | "pass\n"))\r | |
57 | write_script("shell.sh", ("#!/bin/sh\n"\r | |
58 | "# bogus shell script w/ sh-bang\n"\r | |
59 | "exit 0\n"))\r | |
60 | \r | |
61 | target = self.mkdtemp()\r | |
62 | dist = Distribution()\r | |
63 | dist.command_obj["build"] = support.DummyCommand(build_scripts=source)\r | |
64 | dist.command_obj["install"] = support.DummyCommand(\r | |
65 | install_scripts=target,\r | |
66 | force=1,\r | |
67 | skip_build=1,\r | |
68 | )\r | |
69 | cmd = install_scripts(dist)\r | |
70 | cmd.finalize_options()\r | |
71 | cmd.run()\r | |
72 | \r | |
73 | installed = os.listdir(target)\r | |
74 | for name in expected:\r | |
75 | self.assertTrue(name in installed)\r | |
76 | \r | |
77 | \r | |
78 | def test_suite():\r | |
79 | return unittest.makeSuite(InstallScriptsTestCase)\r | |
80 | \r | |
81 | if __name__ == "__main__":\r | |
82 | run_unittest(test_suite())\r |