]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_core.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / distutils / tests / test_core.py
CommitLineData
4710c53d 1"""Tests for distutils.core."""\r
2\r
3import StringIO\r
4import distutils.core\r
5import os\r
6import shutil\r
7import sys\r
8import test.test_support\r
9from test.test_support import captured_stdout, run_unittest\r
10import unittest\r
11from distutils.tests import support\r
12\r
13# setup script that uses __file__\r
14setup_using___file__ = """\\r
15\r
16__file__\r
17\r
18from distutils.core import setup\r
19setup()\r
20"""\r
21\r
22setup_prints_cwd = """\\r
23\r
24import os\r
25print os.getcwd()\r
26\r
27from distutils.core import setup\r
28setup()\r
29"""\r
30\r
31\r
32class CoreTestCase(support.EnvironGuard, unittest.TestCase):\r
33\r
34 def setUp(self):\r
35 super(CoreTestCase, self).setUp()\r
36 self.old_stdout = sys.stdout\r
37 self.cleanup_testfn()\r
38 self.old_argv = sys.argv, sys.argv[:]\r
39\r
40 def tearDown(self):\r
41 sys.stdout = self.old_stdout\r
42 self.cleanup_testfn()\r
43 sys.argv = self.old_argv[0]\r
44 sys.argv[:] = self.old_argv[1]\r
45 super(CoreTestCase, self).tearDown()\r
46\r
47 def cleanup_testfn(self):\r
48 path = test.test_support.TESTFN\r
49 if os.path.isfile(path):\r
50 os.remove(path)\r
51 elif os.path.isdir(path):\r
52 shutil.rmtree(path)\r
53\r
54 def write_setup(self, text, path=test.test_support.TESTFN):\r
55 f = open(path, "w")\r
56 try:\r
57 f.write(text)\r
58 finally:\r
59 f.close()\r
60 return path\r
61\r
62 def test_run_setup_provides_file(self):\r
63 # Make sure the script can use __file__; if that's missing, the test\r
64 # setup.py script will raise NameError.\r
65 distutils.core.run_setup(\r
66 self.write_setup(setup_using___file__))\r
67\r
68 def test_run_setup_uses_current_dir(self):\r
69 # This tests that the setup script is run with the current directory\r
70 # as its own current directory; this was temporarily broken by a\r
71 # previous patch when TESTFN did not use the current directory.\r
72 sys.stdout = StringIO.StringIO()\r
73 cwd = os.getcwd()\r
74\r
75 # Create a directory and write the setup.py file there:\r
76 os.mkdir(test.test_support.TESTFN)\r
77 setup_py = os.path.join(test.test_support.TESTFN, "setup.py")\r
78 distutils.core.run_setup(\r
79 self.write_setup(setup_prints_cwd, path=setup_py))\r
80\r
81 output = sys.stdout.getvalue()\r
82 if output.endswith("\n"):\r
83 output = output[:-1]\r
84 self.assertEqual(cwd, output)\r
85\r
86 def test_debug_mode(self):\r
87 # this covers the code called when DEBUG is set\r
88 sys.argv = ['setup.py', '--name']\r
89 with captured_stdout() as stdout:\r
90 distutils.core.setup(name='bar')\r
91 stdout.seek(0)\r
92 self.assertEqual(stdout.read(), 'bar\n')\r
93\r
94 distutils.core.DEBUG = True\r
95 try:\r
96 with captured_stdout() as stdout:\r
97 distutils.core.setup(name='bar')\r
98 finally:\r
99 distutils.core.DEBUG = False\r
100 stdout.seek(0)\r
101 wanted = "options (after parsing config files):\n"\r
102 self.assertEqual(stdout.readlines()[0], wanted)\r
103\r
104def test_suite():\r
105 return unittest.makeSuite(CoreTestCase)\r
106\r
107if __name__ == "__main__":\r
108 run_unittest(test_suite())\r