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

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

#countcontent
1n/a"""Tests for distutils.command.bdist_dumb."""
2n/a
3n/aimport os
4n/aimport imp
5n/aimport sys
6n/aimport zipfile
7n/aimport packaging.util
8n/a
9n/afrom packaging.dist import Distribution
10n/afrom packaging.command.bdist_dumb import bdist_dumb
11n/afrom packaging.tests import unittest, support
12n/afrom packaging.tests.support import requires_zlib
13n/a
14n/a
15n/aclass BuildDumbTestCase(support.TempdirManager,
16n/a support.LoggingCatcher,
17n/a unittest.TestCase):
18n/a
19n/a def setUp(self):
20n/a super(BuildDumbTestCase, self).setUp()
21n/a self.old_location = os.getcwd()
22n/a
23n/a def tearDown(self):
24n/a os.chdir(self.old_location)
25n/a packaging.util._path_created.clear()
26n/a super(BuildDumbTestCase, self).tearDown()
27n/a
28n/a @requires_zlib
29n/a def test_simple_built(self):
30n/a
31n/a # let's create a simple package
32n/a tmp_dir = self.mkdtemp()
33n/a pkg_dir = os.path.join(tmp_dir, 'foo')
34n/a os.mkdir(pkg_dir)
35n/a self.write_file((pkg_dir, 'foo.py'), '#')
36n/a self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
37n/a self.write_file((pkg_dir, 'README'), '')
38n/a
39n/a dist = Distribution({'name': 'foo', 'version': '0.1',
40n/a 'py_modules': ['foo'],
41n/a 'home_page': 'xxx', 'author': 'xxx',
42n/a 'author_email': 'xxx'})
43n/a os.chdir(pkg_dir)
44n/a cmd = bdist_dumb(dist)
45n/a
46n/a # so the output is the same no matter
47n/a # what is the platform
48n/a cmd.format = 'zip'
49n/a
50n/a cmd.ensure_finalized()
51n/a cmd.run()
52n/a
53n/a # see what we have
54n/a dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
55n/a base = "%s.%s.zip" % (dist.get_fullname(), cmd.plat_name)
56n/a if os.name == 'os2':
57n/a base = base.replace(':', '-')
58n/a
59n/a self.assertEqual(dist_created, [base])
60n/a
61n/a # now let's check what we have in the zip file
62n/a with zipfile.ZipFile(os.path.join('dist', base)) as fp:
63n/a contents = fp.namelist()
64n/a
65n/a contents = sorted(os.path.basename(fn) for fn in contents)
66n/a wanted = ['foo.py',
67n/a 'foo.%s.pyc' % imp.get_tag(),
68n/a 'METADATA', 'INSTALLER', 'REQUESTED', 'RECORD']
69n/a self.assertEqual(contents, sorted(wanted))
70n/a
71n/a def test_finalize_options(self):
72n/a pkg_dir, dist = self.create_dist()
73n/a os.chdir(pkg_dir)
74n/a cmd = bdist_dumb(dist)
75n/a self.assertEqual(cmd.bdist_dir, None)
76n/a cmd.finalize_options()
77n/a
78n/a # bdist_dir is initialized to bdist_base/dumb if not set
79n/a base = cmd.get_finalized_command('bdist').bdist_base
80n/a self.assertEqual(cmd.bdist_dir, os.path.join(base, 'dumb'))
81n/a
82n/a # the format is set to a default value depending on the os.name
83n/a default = cmd.default_format[os.name]
84n/a self.assertEqual(cmd.format, default)
85n/a
86n/a
87n/adef test_suite():
88n/a return unittest.makeSuite(BuildDumbTestCase)
89n/a
90n/aif __name__ == '__main__':
91n/a unittest.main(defaultTest='test_suite')