]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_build_scripts.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / distutils / tests / test_build_scripts.py
CommitLineData
4710c53d 1"""Tests for distutils.command.build_scripts."""\r
2\r
3import os\r
4import unittest\r
5\r
6from distutils.command.build_scripts import build_scripts\r
7from distutils.core import Distribution\r
8import sysconfig\r
9\r
10from distutils.tests import support\r
11from test.test_support import run_unittest\r
12\r
13\r
14class BuildScriptsTestCase(support.TempdirManager,\r
15 support.LoggingSilencer,\r
16 unittest.TestCase):\r
17\r
18 def test_default_settings(self):\r
19 cmd = self.get_build_scripts_cmd("/foo/bar", [])\r
20 self.assertTrue(not cmd.force)\r
21 self.assertTrue(cmd.build_dir is None)\r
22\r
23 cmd.finalize_options()\r
24\r
25 self.assertTrue(cmd.force)\r
26 self.assertEqual(cmd.build_dir, "/foo/bar")\r
27\r
28 def test_build(self):\r
29 source = self.mkdtemp()\r
30 target = self.mkdtemp()\r
31 expected = self.write_sample_scripts(source)\r
32\r
33 cmd = self.get_build_scripts_cmd(target,\r
34 [os.path.join(source, fn)\r
35 for fn in expected])\r
36 cmd.finalize_options()\r
37 cmd.run()\r
38\r
39 built = os.listdir(target)\r
40 for name in expected:\r
41 self.assertTrue(name in built)\r
42\r
43 def get_build_scripts_cmd(self, target, scripts):\r
44 import sys\r
45 dist = Distribution()\r
46 dist.scripts = scripts\r
47 dist.command_obj["build"] = support.DummyCommand(\r
48 build_scripts=target,\r
49 force=1,\r
50 executable=sys.executable\r
51 )\r
52 return build_scripts(dist)\r
53\r
54 def write_sample_scripts(self, dir):\r
55 expected = []\r
56 expected.append("script1.py")\r
57 self.write_script(dir, "script1.py",\r
58 ("#! /usr/bin/env python2.3\n"\r
59 "# bogus script w/ Python sh-bang\n"\r
60 "pass\n"))\r
61 expected.append("script2.py")\r
62 self.write_script(dir, "script2.py",\r
63 ("#!/usr/bin/python\n"\r
64 "# bogus script w/ Python sh-bang\n"\r
65 "pass\n"))\r
66 expected.append("shell.sh")\r
67 self.write_script(dir, "shell.sh",\r
68 ("#!/bin/sh\n"\r
69 "# bogus shell script w/ sh-bang\n"\r
70 "exit 0\n"))\r
71 return expected\r
72\r
73 def write_script(self, dir, name, text):\r
74 f = open(os.path.join(dir, name), "w")\r
75 try:\r
76 f.write(text)\r
77 finally:\r
78 f.close()\r
79\r
80 def test_version_int(self):\r
81 source = self.mkdtemp()\r
82 target = self.mkdtemp()\r
83 expected = self.write_sample_scripts(source)\r
84\r
85\r
86 cmd = self.get_build_scripts_cmd(target,\r
87 [os.path.join(source, fn)\r
88 for fn in expected])\r
89 cmd.finalize_options()\r
90\r
91 # http://bugs.python.org/issue4524\r
92 #\r
93 # On linux-g++-32 with command line `./configure --enable-ipv6\r
94 # --with-suffix=3`, python is compiled okay but the build scripts\r
95 # failed when writing the name of the executable\r
96 old = sysconfig.get_config_vars().get('VERSION')\r
97 sysconfig._CONFIG_VARS['VERSION'] = 4\r
98 try:\r
99 cmd.run()\r
100 finally:\r
101 if old is not None:\r
102 sysconfig._CONFIG_VARS['VERSION'] = old\r
103\r
104 built = os.listdir(target)\r
105 for name in expected:\r
106 self.assertTrue(name in built)\r
107\r
108def test_suite():\r
109 return unittest.makeSuite(BuildScriptsTestCase)\r
110\r
111if __name__ == "__main__":\r
112 run_unittest(test_suite())\r