]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_cmd.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / distutils / tests / test_cmd.py
CommitLineData
4710c53d 1"""Tests for distutils.cmd."""\r
2import unittest\r
3import os\r
4from test.test_support import captured_stdout, run_unittest\r
5\r
6from distutils.cmd import Command\r
7from distutils.dist import Distribution\r
8from distutils.errors import DistutilsOptionError\r
9from distutils import debug\r
10\r
11class MyCmd(Command):\r
12 def initialize_options(self):\r
13 pass\r
14\r
15class CommandTestCase(unittest.TestCase):\r
16\r
17 def setUp(self):\r
18 dist = Distribution()\r
19 self.cmd = MyCmd(dist)\r
20\r
21 def test_ensure_string_list(self):\r
22\r
23 cmd = self.cmd\r
24 cmd.not_string_list = ['one', 2, 'three']\r
25 cmd.yes_string_list = ['one', 'two', 'three']\r
26 cmd.not_string_list2 = object()\r
27 cmd.yes_string_list2 = 'ok'\r
28 cmd.ensure_string_list('yes_string_list')\r
29 cmd.ensure_string_list('yes_string_list2')\r
30\r
31 self.assertRaises(DistutilsOptionError,\r
32 cmd.ensure_string_list, 'not_string_list')\r
33\r
34 self.assertRaises(DistutilsOptionError,\r
35 cmd.ensure_string_list, 'not_string_list2')\r
36\r
37 def test_make_file(self):\r
38\r
39 cmd = self.cmd\r
40\r
41 # making sure it raises when infiles is not a string or a list/tuple\r
42 self.assertRaises(TypeError, cmd.make_file,\r
43 infiles=1, outfile='', func='func', args=())\r
44\r
45 # making sure execute gets called properly\r
46 def _execute(func, args, exec_msg, level):\r
47 self.assertEqual(exec_msg, 'generating out from in')\r
48 cmd.force = True\r
49 cmd.execute = _execute\r
50 cmd.make_file(infiles='in', outfile='out', func='func', args=())\r
51\r
52 def test_dump_options(self):\r
53\r
54 msgs = []\r
55 def _announce(msg, level):\r
56 msgs.append(msg)\r
57 cmd = self.cmd\r
58 cmd.announce = _announce\r
59 cmd.option1 = 1\r
60 cmd.option2 = 1\r
61 cmd.user_options = [('option1', '', ''), ('option2', '', '')]\r
62 cmd.dump_options()\r
63\r
64 wanted = ["command options for 'MyCmd':", ' option1 = 1',\r
65 ' option2 = 1']\r
66 self.assertEqual(msgs, wanted)\r
67\r
68 def test_ensure_string(self):\r
69 cmd = self.cmd\r
70 cmd.option1 = 'ok'\r
71 cmd.ensure_string('option1')\r
72\r
73 cmd.option2 = None\r
74 cmd.ensure_string('option2', 'xxx')\r
75 self.assertTrue(hasattr(cmd, 'option2'))\r
76\r
77 cmd.option3 = 1\r
78 self.assertRaises(DistutilsOptionError, cmd.ensure_string, 'option3')\r
79\r
80 def test_ensure_string_list(self):\r
81 cmd = self.cmd\r
82 cmd.option1 = 'ok,dok'\r
83 cmd.ensure_string_list('option1')\r
84 self.assertEqual(cmd.option1, ['ok', 'dok'])\r
85\r
86 cmd.option2 = ['xxx', 'www']\r
87 cmd.ensure_string_list('option2')\r
88\r
89 cmd.option3 = ['ok', 2]\r
90 self.assertRaises(DistutilsOptionError, cmd.ensure_string_list,\r
91 'option3')\r
92\r
93 def test_ensure_filename(self):\r
94 cmd = self.cmd\r
95 cmd.option1 = __file__\r
96 cmd.ensure_filename('option1')\r
97 cmd.option2 = 'xxx'\r
98 self.assertRaises(DistutilsOptionError, cmd.ensure_filename, 'option2')\r
99\r
100 def test_ensure_dirname(self):\r
101 cmd = self.cmd\r
102 cmd.option1 = os.path.dirname(__file__) or os.curdir\r
103 cmd.ensure_dirname('option1')\r
104 cmd.option2 = 'xxx'\r
105 self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')\r
106\r
107 def test_debug_print(self):\r
108 cmd = self.cmd\r
109 with captured_stdout() as stdout:\r
110 cmd.debug_print('xxx')\r
111 stdout.seek(0)\r
112 self.assertEqual(stdout.read(), '')\r
113\r
114 debug.DEBUG = True\r
115 try:\r
116 with captured_stdout() as stdout:\r
117 cmd.debug_print('xxx')\r
118 stdout.seek(0)\r
119 self.assertEqual(stdout.read(), 'xxx\n')\r
120 finally:\r
121 debug.DEBUG = False\r
122\r
123def test_suite():\r
124 return unittest.makeSuite(CommandTestCase)\r
125\r
126if __name__ == '__main__':\r
127 run_unittest(test_suite())\r