| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | """Tests for distutils.command.bdist.""" | 
					
						
							| 
									
										
										
										
											2011-08-30 01:42:50 +02:00
										 |  |  | import os | 
					
						
							| 
									
										
										
										
											2011-11-15 10:48:36 +01:00
										 |  |  | from test.support import captured_stdout | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | from packaging.command.bdist import bdist, show_formats | 
					
						
							| 
									
										
										
										
											2011-11-15 10:48:36 +01:00
										 |  |  | from packaging.tests import unittest, support | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BuildTestCase(support.TempdirManager, | 
					
						
							|  |  |  |                     support.LoggingCatcher, | 
					
						
							|  |  |  |                     unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_formats(self): | 
					
						
							|  |  |  |         # let's create a command and make sure | 
					
						
							| 
									
										
										
										
											2011-08-30 01:19:02 +02:00
										 |  |  |         # we can set the format | 
					
						
							|  |  |  |         dist = self.create_dist()[1] | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  |         cmd = bdist(dist) | 
					
						
							|  |  |  |         cmd.formats = ['msi'] | 
					
						
							|  |  |  |         cmd.ensure_finalized() | 
					
						
							|  |  |  |         self.assertEqual(cmd.formats, ['msi']) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-30 01:42:50 +02:00
										 |  |  |         # what formats does bdist offer? | 
					
						
							| 
									
										
										
										
											2011-08-30 01:19:02 +02:00
										 |  |  |         # XXX hard-coded lists are not the best way to find available bdist_* | 
					
						
							|  |  |  |         # commands; we should add a registry | 
					
						
							|  |  |  |         formats = ['bztar', 'gztar', 'msi', 'tar', 'wininst', 'zip'] | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  |         found = sorted(cmd.format_command) | 
					
						
							|  |  |  |         self.assertEqual(found, formats) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_skip_build(self): | 
					
						
							| 
									
										
										
										
											2011-08-30 01:42:50 +02:00
										 |  |  |         # bug #10946: bdist --skip-build should trickle down to subcommands | 
					
						
							| 
									
										
										
										
											2011-08-30 01:19:02 +02:00
										 |  |  |         dist = self.create_dist()[1] | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  |         cmd = bdist(dist) | 
					
						
							|  |  |  |         cmd.skip_build = True | 
					
						
							|  |  |  |         cmd.ensure_finalized() | 
					
						
							| 
									
										
										
										
											2011-08-30 01:42:50 +02:00
										 |  |  |         dist.command_obj['bdist'] = cmd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         names = ['bdist_dumb', 'bdist_wininst'] | 
					
						
							|  |  |  |         if os.name == 'nt': | 
					
						
							|  |  |  |             names.append('bdist_msi') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for name in names: | 
					
						
							|  |  |  |             subcmd = cmd.get_finalized_command(name) | 
					
						
							|  |  |  |             self.assertTrue(subcmd.skip_build, | 
					
						
							|  |  |  |                             '%s should take --skip-build from bdist' % name) | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_show_formats(self): | 
					
						
							| 
									
										
										
										
											2011-11-15 10:48:36 +01:00
										 |  |  |         with captured_stdout() as stdout: | 
					
						
							|  |  |  |             show_formats() | 
					
						
							|  |  |  |         stdout = stdout.getvalue() | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # 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) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main(defaultTest='test_suite') |