mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[1.6.x] Made skipping of symlink-related makemessages test smarter.
os.symlink() is available starting with Windows Vista but can fail at
runtime.
0f46ec315e from master.
			
			
This commit is contained in:
		
				
					committed by
					
						 Ramiro Morales
						Ramiro Morales
					
				
			
			
				
	
			
			
			
						parent
						
							65950805eb
						
					
				
				
					commit
					3ec368014d
				
			| @@ -4,6 +4,7 @@ from __future__ import unicode_literals | ||||
| import os | ||||
| import re | ||||
| import shutil | ||||
| from unittest import SkipTest | ||||
| import warnings | ||||
|  | ||||
| from django.core import management | ||||
| @@ -314,11 +315,20 @@ class SymlinkExtractorTests(ExtractorTests): | ||||
|         os.chdir(self._cwd) | ||||
|  | ||||
|     def test_symlink(self): | ||||
|         # On Python < 3.2 os.symlink() exists only on Unix | ||||
|         if hasattr(os, 'symlink'): | ||||
|             if os.path.exists(self.symlinked_dir): | ||||
|                 self.assertTrue(os.path.islink(self.symlinked_dir)) | ||||
|             else: | ||||
|                 os.symlink(os.path.join(self.test_dir, 'templates'), self.symlinked_dir) | ||||
|                 # On Python >= 3.2) os.symlink() exists always but then can | ||||
|                 # fail at runtime when user hasn't the needed permissions on | ||||
|                 # WIndows versions that support symbolink links (>= 6/Vista). | ||||
|                 # See Python issue 9333 (http://bugs.python.org/issue9333). | ||||
|                 # Skip the test in that case | ||||
|                 try: | ||||
|                     os.symlink(os.path.join(self.test_dir, 'templates'), self.symlinked_dir) | ||||
|                 except (OSError, NotImplementedError): | ||||
|                     raise SkipTest("os.symlink() is available on this OS but can't be used by this user.") | ||||
|             os.chdir(self.test_dir) | ||||
|             management.call_command('makemessages', locale=LOCALE, verbosity=0, symlinks=True) | ||||
|             self.assertTrue(os.path.exists(self.PO_FILE)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user