17db96d56Sopenharmony_ci"""Tests for distutils.command.bdist."""
27db96d56Sopenharmony_ciimport os
37db96d56Sopenharmony_ciimport unittest
47db96d56Sopenharmony_cifrom test.support import run_unittest
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ciimport warnings
77db96d56Sopenharmony_ciwith warnings.catch_warnings():
87db96d56Sopenharmony_ci    warnings.simplefilter('ignore', DeprecationWarning)
97db96d56Sopenharmony_ci    from distutils.command.bdist import bdist
107db96d56Sopenharmony_ci    from distutils.tests import support
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ciclass BuildTestCase(support.TempdirManager,
147db96d56Sopenharmony_ci                    unittest.TestCase):
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci    def test_formats(self):
177db96d56Sopenharmony_ci        # let's create a command and make sure
187db96d56Sopenharmony_ci        # we can set the format
197db96d56Sopenharmony_ci        dist = self.create_dist()[1]
207db96d56Sopenharmony_ci        cmd = bdist(dist)
217db96d56Sopenharmony_ci        cmd.formats = ['tar']
227db96d56Sopenharmony_ci        cmd.ensure_finalized()
237db96d56Sopenharmony_ci        self.assertEqual(cmd.formats, ['tar'])
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci        # what formats does bdist offer?
267db96d56Sopenharmony_ci        formats = ['bztar', 'gztar', 'rpm', 'tar', 'xztar', 'zip', 'ztar']
277db96d56Sopenharmony_ci        found = sorted(cmd.format_command)
287db96d56Sopenharmony_ci        self.assertEqual(found, formats)
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci    def test_skip_build(self):
317db96d56Sopenharmony_ci        # bug #10946: bdist --skip-build should trickle down to subcommands
327db96d56Sopenharmony_ci        dist = self.create_dist()[1]
337db96d56Sopenharmony_ci        cmd = bdist(dist)
347db96d56Sopenharmony_ci        cmd.skip_build = 1
357db96d56Sopenharmony_ci        cmd.ensure_finalized()
367db96d56Sopenharmony_ci        dist.command_obj['bdist'] = cmd
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci        for name in ['bdist_dumb']:  # bdist_rpm does not support --skip-build
397db96d56Sopenharmony_ci            subcmd = cmd.get_finalized_command(name)
407db96d56Sopenharmony_ci            if getattr(subcmd, '_unsupported', False):
417db96d56Sopenharmony_ci                # command is not supported on this build
427db96d56Sopenharmony_ci                continue
437db96d56Sopenharmony_ci            self.assertTrue(subcmd.skip_build,
447db96d56Sopenharmony_ci                            '%s should take --skip-build from bdist' % name)
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_cidef test_suite():
487db96d56Sopenharmony_ci    return unittest.TestLoader().loadTestsFromTestCase(BuildTestCase)
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ciif __name__ == '__main__':
527db96d56Sopenharmony_ci    run_unittest(test_suite())
53