mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 df2d4a6f3d
			
		
	
	
		df2d4a6f3d
		
			
		
	
	
	
	
		
			
			bpo-37834: Normalise handling of reparse points on Windows
* ntpath.realpath() and nt.stat() will traverse all supported reparse points (previously was mixed)
* nt.lstat() will let the OS traverse reparse points that are not name surrogates (previously would not traverse any reparse point)
* nt.[l]stat() will only set S_IFLNK for symlinks (previous behaviour)
* nt.readlink() will read destinations for symlinks and junction points only
bpo-1311: os.path.exists('nul') now returns True on Windows
* nt.stat('nul').st_mode is now S_IFCHR (previously was an error)
		
	
			
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for the lll script in the Tools/script directory."""
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| import tempfile
 | |
| from test import support
 | |
| from test.test_tools import skip_if_missing, import_tool
 | |
| import unittest
 | |
| 
 | |
| skip_if_missing()
 | |
| 
 | |
| 
 | |
| class lllTests(unittest.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
|         self.lll = import_tool('lll')
 | |
| 
 | |
|     @support.skip_unless_symlink
 | |
|     def test_lll_multiple_dirs(self):
 | |
|         with tempfile.TemporaryDirectory() as dir1, \
 | |
|              tempfile.TemporaryDirectory() as dir2:
 | |
|             fn1 = os.path.join(dir1, 'foo1')
 | |
|             fn2 = os.path.join(dir2, 'foo2')
 | |
|             for fn, dir in (fn1, dir1), (fn2, dir2):
 | |
|                 open(fn, 'w').close()
 | |
|                 os.symlink(fn, os.path.join(dir, 'symlink'))
 | |
| 
 | |
|             with support.captured_stdout() as output:
 | |
|                 self.lll.main([dir1, dir2])
 | |
|             prefix = '\\\\?\\' if os.name == 'nt' else ''
 | |
|             self.assertEqual(output.getvalue(),
 | |
|                 f'{dir1}:\n'
 | |
|                 f'symlink -> {prefix}{fn1}\n'
 | |
|                 f'\n'
 | |
|                 f'{dir2}:\n'
 | |
|                 f'symlink -> {prefix}{fn2}\n'
 | |
|             )
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     unittest.main()
 |