ยปCore Development>Code coverage>Lib/packaging/tests/test_command_cmd.py

Python code coverage for Lib/packaging/tests/test_command_cmd.py

#countcontent
1n/a"""Tests for distutils.cmd."""
2n/aimport os
3n/aimport logging
4n/a
5n/afrom packaging.command.cmd import Command
6n/afrom packaging.dist import Distribution
7n/afrom packaging.errors import PackagingOptionError
8n/afrom packaging.tests import support, unittest
9n/a
10n/a
11n/aclass MyCmd(Command):
12n/a def initialize_options(self):
13n/a pass
14n/a
15n/a
16n/aclass CommandTestCase(support.LoggingCatcher,
17n/a unittest.TestCase):
18n/a
19n/a def setUp(self):
20n/a super(CommandTestCase, self).setUp()
21n/a dist = Distribution()
22n/a self.cmd = MyCmd(dist)
23n/a
24n/a def test_make_file(self):
25n/a cmd = self.cmd
26n/a
27n/a # making sure it raises when infiles is not a string or a list/tuple
28n/a self.assertRaises(TypeError, cmd.make_file,
29n/a infiles=1, outfile='', func='func', args=())
30n/a
31n/a # making sure execute gets called properly
32n/a def _execute(func, args, exec_msg, level):
33n/a self.assertEqual(exec_msg, 'generating out from in')
34n/a cmd.force = True
35n/a cmd.execute = _execute
36n/a cmd.make_file(infiles='in', outfile='out', func='func', args=())
37n/a
38n/a def test_dump_options(self):
39n/a cmd = self.cmd
40n/a cmd.option1 = 1
41n/a cmd.option2 = 1
42n/a cmd.user_options = [('option1', '', ''), ('option2', '', '')]
43n/a cmd.dump_options()
44n/a
45n/a wanted = ["command options for 'MyCmd':", ' option1 = 1',
46n/a ' option2 = 1']
47n/a msgs = self.get_logs(logging.INFO)
48n/a self.assertEqual(msgs, wanted)
49n/a
50n/a def test_ensure_string(self):
51n/a cmd = self.cmd
52n/a cmd.option1 = 'ok'
53n/a cmd.ensure_string('option1')
54n/a
55n/a cmd.option2 = None
56n/a cmd.ensure_string('option2', 'xxx')
57n/a self.assertTrue(hasattr(cmd, 'option2'))
58n/a
59n/a cmd.option3 = 1
60n/a self.assertRaises(PackagingOptionError, cmd.ensure_string, 'option3')
61n/a
62n/a def test_ensure_string_list(self):
63n/a cmd = self.cmd
64n/a cmd.option1 = 'ok,dok'
65n/a cmd.ensure_string_list('option1')
66n/a self.assertEqual(cmd.option1, ['ok', 'dok'])
67n/a
68n/a cmd.yes_string_list = ['one', 'two', 'three']
69n/a cmd.yes_string_list2 = 'ok'
70n/a cmd.ensure_string_list('yes_string_list')
71n/a cmd.ensure_string_list('yes_string_list2')
72n/a self.assertEqual(cmd.yes_string_list, ['one', 'two', 'three'])
73n/a self.assertEqual(cmd.yes_string_list2, ['ok'])
74n/a
75n/a cmd.not_string_list = ['one', 2, 'three']
76n/a cmd.not_string_list2 = object()
77n/a self.assertRaises(PackagingOptionError,
78n/a cmd.ensure_string_list, 'not_string_list')
79n/a
80n/a self.assertRaises(PackagingOptionError,
81n/a cmd.ensure_string_list, 'not_string_list2')
82n/a
83n/a def test_ensure_filename(self):
84n/a cmd = self.cmd
85n/a cmd.option1 = __file__
86n/a cmd.ensure_filename('option1')
87n/a cmd.option2 = 'xxx'
88n/a self.assertRaises(PackagingOptionError, cmd.ensure_filename, 'option2')
89n/a
90n/a def test_ensure_dirname(self):
91n/a cmd = self.cmd
92n/a cmd.option1 = os.path.dirname(__file__) or os.curdir
93n/a cmd.ensure_dirname('option1')
94n/a cmd.option2 = 'xxx'
95n/a self.assertRaises(PackagingOptionError, cmd.ensure_dirname, 'option2')
96n/a
97n/a
98n/adef test_suite():
99n/a return unittest.makeSuite(CommandTestCase)
100n/a
101n/aif __name__ == '__main__':
102n/a unittest.main(defaultTest='test_suite')