164408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé"""Tests for distutils.command.bdist.""" 264408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadéimport os 3429b890561fcab04898707ef412c4d21632488a3Éric Araujoimport unittest 464408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 528aeb0d0ab01fc4a78c4934b778fbf2f2954c023Georg Brandlfrom test.test_support import run_unittest 628aeb0d0ab01fc4a78c4934b778fbf2f2954c023Georg Brandl 764408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadéfrom distutils.command.bdist import bdist 864408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadéfrom distutils.tests import support 9429b890561fcab04898707ef412c4d21632488a3Éric Araujo 1064408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 1164408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadéclass BuildTestCase(support.TempdirManager, 1264408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé unittest.TestCase): 1364408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 1464408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé def test_formats(self): 1564408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé # let's create a command and make sure 16429b890561fcab04898707ef412c4d21632488a3Éric Araujo # we can set the format 17429b890561fcab04898707ef412c4d21632488a3Éric Araujo dist = self.create_dist()[1] 1864408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé cmd = bdist(dist) 1964408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé cmd.formats = ['msi'] 2064408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé cmd.ensure_finalized() 212623a37852153363335956afab010cb0beb7e74eEzio Melotti self.assertEqual(cmd.formats, ['msi']) 2264408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 23429b890561fcab04898707ef412c4d21632488a3Éric Araujo # what formats does bdist offer? 24429b890561fcab04898707ef412c4d21632488a3Éric Araujo formats = ['bztar', 'gztar', 'msi', 'rpm', 'tar', 25429b890561fcab04898707ef412c4d21632488a3Éric Araujo 'wininst', 'zip', 'ztar'] 26429b890561fcab04898707ef412c4d21632488a3Éric Araujo found = sorted(cmd.format_command) 27429b890561fcab04898707ef412c4d21632488a3Éric Araujo self.assertEqual(found, formats) 28429b890561fcab04898707ef412c4d21632488a3Éric Araujo 29429b890561fcab04898707ef412c4d21632488a3Éric Araujo def test_skip_build(self): 30429b890561fcab04898707ef412c4d21632488a3Éric Araujo # bug #10946: bdist --skip-build should trickle down to subcommands 31429b890561fcab04898707ef412c4d21632488a3Éric Araujo dist = self.create_dist()[1] 32429b890561fcab04898707ef412c4d21632488a3Éric Araujo cmd = bdist(dist) 33429b890561fcab04898707ef412c4d21632488a3Éric Araujo cmd.skip_build = 1 34429b890561fcab04898707ef412c4d21632488a3Éric Araujo cmd.ensure_finalized() 35429b890561fcab04898707ef412c4d21632488a3Éric Araujo dist.command_obj['bdist'] = cmd 36429b890561fcab04898707ef412c4d21632488a3Éric Araujo 37429b890561fcab04898707ef412c4d21632488a3Éric Araujo names = ['bdist_dumb', 'bdist_wininst'] 38429b890561fcab04898707ef412c4d21632488a3Éric Araujo # bdist_rpm does not support --skip-build 39429b890561fcab04898707ef412c4d21632488a3Éric Araujo if os.name == 'nt': 40429b890561fcab04898707ef412c4d21632488a3Éric Araujo names.append('bdist_msi') 41429b890561fcab04898707ef412c4d21632488a3Éric Araujo 42429b890561fcab04898707ef412c4d21632488a3Éric Araujo for name in names: 43429b890561fcab04898707ef412c4d21632488a3Éric Araujo subcmd = cmd.get_finalized_command(name) 44429b890561fcab04898707ef412c4d21632488a3Éric Araujo self.assertTrue(subcmd.skip_build, 45429b890561fcab04898707ef412c4d21632488a3Éric Araujo '%s should take --skip-build from bdist' % name) 46429b890561fcab04898707ef412c4d21632488a3Éric Araujo 4764408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 4864408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadédef test_suite(): 4964408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé return unittest.makeSuite(BuildTestCase) 5064408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadé 5164408fb4c5b58b3fa07a492436dfa5e119c189e0Tarek Ziadéif __name__ == '__main__': 5228aeb0d0ab01fc4a78c4934b778fbf2f2954c023Georg Brandl run_unittest(test_suite()) 53