diff options
Diffstat (limited to 'distutils2/tests/test_command_bdist.py')
| -rw-r--r-- | distutils2/tests/test_command_bdist.py | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/distutils2/tests/test_command_bdist.py b/distutils2/tests/test_command_bdist.py index 1b447ae..dfe1a96 100644 --- a/distutils2/tests/test_command_bdist.py +++ b/distutils2/tests/test_command_bdist.py @@ -1,13 +1,31 @@ """Tests for distutils.command.bdist.""" +from distutils2 import util from distutils2.tests import run_unittest -from distutils2.command.bdist import bdist -from distutils2.tests import unittest, support +from distutils2.command.bdist import bdist, show_formats +from distutils2.tests import unittest, support, captured_stdout + class BuildTestCase(support.TempdirManager, unittest.TestCase): + def _mock_get_platform(self): + self._get_platform_called = True + return self._get_platform() + + def setUp(self): + super(BuildTestCase, self).setUp() + + # mock util.get_platform + self._get_platform_called = False + self._get_platform = util.get_platform + util.get_platform = self._mock_get_platform + + def tearDown(self): + super(BuildTestCase, self).tearDown() + util.get_platform = self._get_platform + def test_formats(self): # let's create a command and make sure @@ -22,12 +40,36 @@ class BuildTestCase(support.TempdirManager, # XXX an explicit list in bdist is # not the best way to bdist_* commands # we should add a registry - formats = ['zip', 'gztar', 'bztar', 'ztar', 'tar', 'wininst', 'msi'] - formats.sort() - found = cmd.format_command.keys() - found.sort() + formats = sorted(('zip', 'gztar', 'bztar', 'ztar', + 'tar', 'wininst', 'msi')) + found = sorted(cmd.format_command) self.assertEqual(found, formats) + def test_skip_build(self): + pkg_pth, dist = self.create_dist() + cmd = bdist(dist) + cmd.skip_build = False + cmd.formats = ['ztar'] + cmd.ensure_finalized() + self.assertFalse(self._get_platform_called) + + pkg_pth, dist = self.create_dist() + cmd = bdist(dist) + cmd.skip_build = True + cmd.formats = ['ztar'] + cmd.ensure_finalized() + self.assertTrue(self._get_platform_called) + + def test_show_formats(self): + __, stdout = captured_stdout(show_formats) + + # the output should be a header line + one line per format + num_formats = len(bdist.format_commands) + output = [line for line in stdout.split('\n') + if line.strip().startswith('--formats=')] + self.assertEqual(len(output), num_formats) + + def test_suite(): return unittest.makeSuite(BuildTestCase) |
