| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  | """Tests for distutils.command.install_scripts.""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from distutils.command.install_scripts import install_scripts | 
					
						
							|  |  |  | from distutils.core import Distribution | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-17 20:14:50 +00:00
										 |  |  | from distutils.tests import support | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  | from test.support import run_unittest | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-08-03 18:53:07 +00:00
										 |  |  | class InstallScriptsTestCase(support.TempdirManager, | 
					
						
							|  |  |  |                              support.LoggingSilencer, | 
					
						
							|  |  |  |                              unittest.TestCase): | 
					
						
							| 
									
										
										
										
											2004-06-15 16:55:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  |     def test_default_settings(self): | 
					
						
							|  |  |  |         dist = Distribution() | 
					
						
							| 
									
										
										
										
											2004-06-17 20:14:50 +00:00
										 |  |  |         dist.command_obj["build"] = support.DummyCommand( | 
					
						
							|  |  |  |             build_scripts="/foo/bar") | 
					
						
							|  |  |  |         dist.command_obj["install"] = support.DummyCommand( | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  |             install_scripts="/splat/funk", | 
					
						
							|  |  |  |             force=1, | 
					
						
							|  |  |  |             skip_build=1, | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         cmd = install_scripts(dist) | 
					
						
							| 
									
										
										
										
											2009-06-30 23:06:06 +00:00
										 |  |  |         self.assertTrue(not cmd.force) | 
					
						
							|  |  |  |         self.assertTrue(not cmd.skip_build) | 
					
						
							|  |  |  |         self.assertTrue(cmd.build_dir is None) | 
					
						
							|  |  |  |         self.assertTrue(cmd.install_dir is None) | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         cmd.finalize_options() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-30 23:06:06 +00:00
										 |  |  |         self.assertTrue(cmd.force) | 
					
						
							|  |  |  |         self.assertTrue(cmd.skip_build) | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  |         self.assertEqual(cmd.build_dir, "/foo/bar") | 
					
						
							|  |  |  |         self.assertEqual(cmd.install_dir, "/splat/funk") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-15 16:55:46 +00:00
										 |  |  |     def test_installation(self): | 
					
						
							|  |  |  |         source = self.mkdtemp() | 
					
						
							|  |  |  |         expected = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def write_script(name, text): | 
					
						
							|  |  |  |             expected.append(name) | 
					
						
							|  |  |  |             f = open(os.path.join(source, name), "w") | 
					
						
							| 
									
										
										
										
											2010-11-05 23:59:32 +00:00
										 |  |  |             try: | 
					
						
							|  |  |  |                 f.write(text) | 
					
						
							|  |  |  |             finally: | 
					
						
							|  |  |  |                 f.close() | 
					
						
							| 
									
										
										
										
											2004-06-15 16:55:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         write_script("script1.py", ("#! /usr/bin/env python2.3\n" | 
					
						
							|  |  |  |                                     "# bogus script w/ Python sh-bang\n" | 
					
						
							|  |  |  |                                     "pass\n")) | 
					
						
							|  |  |  |         write_script("script2.py", ("#!/usr/bin/python\n" | 
					
						
							|  |  |  |                                     "# bogus script w/ Python sh-bang\n" | 
					
						
							|  |  |  |                                     "pass\n")) | 
					
						
							|  |  |  |         write_script("shell.sh", ("#!/bin/sh\n" | 
					
						
							|  |  |  |                                   "# bogus shell script w/ sh-bang\n" | 
					
						
							|  |  |  |                                   "exit 0\n")) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         target = self.mkdtemp() | 
					
						
							|  |  |  |         dist = Distribution() | 
					
						
							| 
									
										
										
										
											2004-06-17 20:14:50 +00:00
										 |  |  |         dist.command_obj["build"] = support.DummyCommand(build_scripts=source) | 
					
						
							|  |  |  |         dist.command_obj["install"] = support.DummyCommand( | 
					
						
							| 
									
										
										
										
											2004-06-15 16:55:46 +00:00
										 |  |  |             install_scripts=target, | 
					
						
							|  |  |  |             force=1, | 
					
						
							|  |  |  |             skip_build=1, | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         cmd = install_scripts(dist) | 
					
						
							|  |  |  |         cmd.finalize_options() | 
					
						
							|  |  |  |         cmd.run() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         installed = os.listdir(target) | 
					
						
							|  |  |  |         for name in expected: | 
					
						
							| 
									
										
										
										
											2009-06-30 23:06:06 +00:00
										 |  |  |             self.assertTrue(name in installed) | 
					
						
							| 
									
										
										
										
											2004-06-15 16:55:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-15 15:49:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def test_suite(): | 
					
						
							|  |  |  |     return unittest.makeSuite(InstallScriptsTestCase) | 
					
						
							| 
									
										
										
										
											2004-06-25 19:04:21 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  |     run_unittest(test_suite()) |