mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Merged revisions 75662 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
  r75662 | tarek.ziade | 2009-10-24 15:38:27 +0200 (Sat, 24 Oct 2009) | 9 lines
  Merged revisions 75659 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r75659 | tarek.ziade | 2009-10-24 15:29:44 +0200 (Sat, 24 Oct 2009) | 1 line
    #7066 - Fixed distutils.archive_util.make_archive behavior so it restores the cwd
  ........
................
			
			
This commit is contained in:
		
							parent
							
								
									f6779fb1a4
								
							
						
					
					
						commit
						53fdb18b82
					
				
					 3 changed files with 25 additions and 6 deletions
				
			
		|  | @ -171,10 +171,11 @@ def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, | |||
|     func = format_info[0] | ||||
|     for arg, val in format_info[1]: | ||||
|         kwargs[arg] = val | ||||
|     filename = func(base_name, base_dir, **kwargs) | ||||
| 
 | ||||
|     if root_dir is not None: | ||||
|         log.debug("changing back to '%s'", save_cwd) | ||||
|         os.chdir(save_cwd) | ||||
|     try: | ||||
|         filename = func(base_name, base_dir, **kwargs) | ||||
|     finally: | ||||
|         if root_dir is not None: | ||||
|             log.debug("changing back to '%s'", save_cwd) | ||||
|             os.chdir(save_cwd) | ||||
| 
 | ||||
|     return filename | ||||
|  |  | |||
|  | @ -8,7 +8,8 @@ | |||
| import warnings | ||||
| 
 | ||||
| from distutils.archive_util import (check_archive_formats, make_tarball, | ||||
|                                     make_zipfile, make_archive) | ||||
|                                     make_zipfile, make_archive, | ||||
|                                     ARCHIVE_FORMATS) | ||||
| from distutils.spawn import find_executable, spawn | ||||
| from distutils.tests import support | ||||
| from test.support import check_warnings | ||||
|  | @ -192,6 +193,20 @@ def test_make_archive(self): | |||
|         base_name = os.path.join(tmpdir, 'archive') | ||||
|         self.assertRaises(ValueError, make_archive, base_name, 'xxx') | ||||
| 
 | ||||
|     def test_make_archive_cwd(self): | ||||
|         current_dir = os.getcwd() | ||||
|         def _breaks(*args, **kw): | ||||
|             raise RuntimeError() | ||||
|         ARCHIVE_FORMATS['xxx'] = (_breaks, [], 'xxx file') | ||||
|         try: | ||||
|             try: | ||||
|                 make_archive('xxx', 'xxx', root_dir=self.mkdtemp()) | ||||
|             except: | ||||
|                 pass | ||||
|             self.assertEquals(os.getcwd(), current_dir) | ||||
|         finally: | ||||
|             del ARCHIVE_FORMATS['xxx'] | ||||
| 
 | ||||
| def test_suite(): | ||||
|     return unittest.makeSuite(ArchiveUtilTestCase) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1069,6 +1069,9 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #7066: archive_util.make_archive now restores the cwd if an error is | ||||
|   raised. Initial patch by Ezio Melotti. | ||||
| 
 | ||||
| - Issue #6545: Removed assert statements in distutils.Extension, so the  | ||||
|   behavior is similar when used with -O. | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tarek Ziadé
						Tarek Ziadé