@@ -564,26 +564,39 @@ def test_startup_interactivehook_isolated_explicit(self):
564
564
'import site, sys; site.enablerlcompleter(); sys.exit(hasattr(sys, "__interactivehook__"))' ]).wait ()
565
565
self .assertTrue (r , "'__interactivehook__' not added by enablerlcompleter()" )
566
566
567
- @unittest .skipUnless (sys .platform == 'win32' , "only supported on Windows" )
568
567
class _pthFileTests (unittest .TestCase ):
569
568
570
- def _create_underpth_exe (self , lines , exe_pth = True ):
571
- import _winapi
572
- temp_dir = tempfile .mkdtemp ()
573
- self .addCleanup (os_helper .rmtree , temp_dir )
574
- exe_file = os .path .join (temp_dir , os .path .split (sys .executable )[1 ])
575
- dll_src_file = _winapi .GetModuleFileName (sys .dllhandle )
576
- dll_file = os .path .join (temp_dir , os .path .split (dll_src_file )[1 ])
577
- shutil .copy (sys .executable , exe_file )
578
- shutil .copy (dll_src_file , dll_file )
579
- if exe_pth :
580
- _pth_file = os .path .splitext (exe_file )[0 ] + '._pth'
581
- else :
582
- _pth_file = os .path .splitext (dll_file )[0 ] + '._pth'
583
- with open (_pth_file , 'w' ) as f :
584
- for line in lines :
585
- print (line , file = f )
586
- return exe_file
569
+ if sys .platform == 'win32' :
570
+ def _create_underpth_exe (self , lines , exe_pth = True ):
571
+ import _winapi
572
+ temp_dir = tempfile .mkdtemp ()
573
+ self .addCleanup (os_helper .rmtree , temp_dir )
574
+ exe_file = os .path .join (temp_dir , os .path .split (sys .executable )[1 ])
575
+ dll_src_file = _winapi .GetModuleFileName (sys .dllhandle )
576
+ dll_file = os .path .join (temp_dir , os .path .split (dll_src_file )[1 ])
577
+ shutil .copy (sys .executable , exe_file )
578
+ shutil .copy (dll_src_file , dll_file )
579
+ if exe_pth :
580
+ _pth_file = os .path .splitext (exe_file )[0 ] + '._pth'
581
+ else :
582
+ _pth_file = os .path .splitext (dll_file )[0 ] + '._pth'
583
+ with open (_pth_file , 'w' ) as f :
584
+ for line in lines :
585
+ print (line , file = f )
586
+ return exe_file
587
+ else :
588
+ def _create_underpth_exe (self , lines , exe_pth = True ):
589
+ if not exe_pth :
590
+ raise unittest .SkipTest ("library ._pth file not supported on this platform" )
591
+ temp_dir = tempfile .mkdtemp ()
592
+ self .addCleanup (os_helper .rmtree , temp_dir )
593
+ exe_file = os .path .join (temp_dir , os .path .split (sys .executable )[1 ])
594
+ os .symlink (sys .executable , exe_file )
595
+ _pth_file = exe_file + '._pth'
596
+ with open (_pth_file , 'w' ) as f :
597
+ for line in lines :
598
+ print (line , file = f )
599
+ return exe_file
587
600
588
601
def _calc_sys_path_for_underpth_nosite (self , sys_prefix , lines ):
589
602
sys_path = []
@@ -605,7 +618,7 @@ def test_underpth_basic(self):
605
618
606
619
output = subprocess .check_output ([exe_file , '-c' ,
607
620
'import sys; print("\\ n".join(sys.path) if sys.flags.no_site else "")'
608
- ], encoding = 'ansi ' )
621
+ ], encoding = 'utf-8' , errors = 'surrogateescape ' )
609
622
actual_sys_path = output .rstrip ().split ('\n ' )
610
623
self .assertTrue (actual_sys_path , "sys.flags.no_site was False" )
611
624
self .assertEqual (
@@ -630,10 +643,10 @@ def test_underpth_nosite_file(self):
630
643
631
644
env = os .environ .copy ()
632
645
env ['PYTHONPATH' ] = 'from-env'
633
- env ['PATH' ] = '{};{} ' .format (exe_prefix , os .getenv ('PATH' ))
646
+ env ['PATH' ] = '{}{}{} ' .format (exe_prefix , os . pathsep , os .getenv ('PATH' ))
634
647
output = subprocess .check_output ([exe_file , '-c' ,
635
648
'import sys; print("\\ n".join(sys.path) if sys.flags.no_site else "")'
636
- ], env = env , encoding = 'ansi ' )
649
+ ], env = env , encoding = 'utf-8' , errors = 'surrogateescape ' )
637
650
actual_sys_path = output .rstrip ().split ('\n ' )
638
651
self .assertTrue (actual_sys_path , "sys.flags.no_site was False" )
639
652
self .assertEqual (
@@ -666,7 +679,6 @@ def test_underpth_file(self):
666
679
)], env = env )
667
680
self .assertTrue (rc , "sys.path is incorrect" )
668
681
669
-
670
682
def test_underpth_dll_file (self ):
671
683
libpath = test .support .STDLIB_DIR
672
684
exe_prefix = os .path .dirname (sys .executable )
0 commit comments