@@ -807,11 +807,11 @@ def test_underpth_dll_file(self):
807807
808808
809809class  CommandLineTests (unittest .TestCase ):
810-     def  setUp (self ):
811-         super (). setUp () 
812-         if   sys . path [ 0 ]  !=   os . getcwd (): 
813-             sys . path . remove ( sys . path [ 0 ]) 
814-             sys . path . insert ( 0 ,  os . getcwd ()) 
810+     def  exists (self ,  path ):
811+              if   path   is   not   None   and   os . path . isdir ( path ): 
812+                  return   "exists" 
813+             else : 
814+                  return   "doesn't exist" 
815815
816816    def  get_excepted_output (self , * args ):
817817        if  len (args ) ==  0 :
@@ -821,13 +821,8 @@ def get_excepted_output(self, *args):
821821            for  dir  in  sys .path :
822822                output  +=  "    %r,\n "  %  (dir ,)
823823            output  +=  "]\n " 
824-             def  exists (path ):
825-                 if  path  is  not   None  and  os .path .isdir (path ):
826-                     return  "exists" 
827-                 else :
828-                     return  "doesn't exist" 
829-             output  +=  f"USER_BASE: { user_base !r}   ({ exists (user_base )}  )\n " 
830-             output  +=  f"USER_SITE: { user_site !r}   ({ exists (user_site )}  )\n " 
824+             output  +=  f"USER_BASE: { user_base !r}   ({ self .exists (user_base )}  )\n " 
825+             output  +=  f"USER_SITE: { user_site !r}   ({ self .exists (user_site )}  )\n " 
831826            output  +=  f"ENABLE_USER_SITE: { site .ENABLE_USER_SITE !r} \n " 
832827            return  0 , dedent (output ).strip ()
833828
@@ -854,39 +849,56 @@ def invoke_command_line(self, *args):
854849        args  =  [sys .executable , "-m" , "site" , * args ]
855850        proc  =  subprocess .Popen (args ,
856851                                stdout = subprocess .PIPE ,
857-                                 stderr = subprocess .STDOUT ,)
852+                                 stderr = subprocess .STDOUT ,
853+                                 text = True )
858854        proc .wait ()
859-         output  =  proc .stdout .read (). decode () 
855+         output  =  proc .stdout .read ()
860856        return_code  =  proc .returncode 
861857        proc .stdout .close ()
862858        return  return_code , dedent (output ).strip ()
863859
860+     @unittest .skipIf (sys .platform  ==  'wasi' , "Popen not supported on WASI" ) 
864861    def  test_no_args (self ):
865862        return_code , output  =  self .invoke_command_line ()
866-         excepted_return_code , excepted_output  =  self .get_excepted_output ()
863+         excepted_return_code , _  =  self .get_excepted_output ()
867864        self .assertEqual (return_code , excepted_return_code )
868-         self .assertEqual (output , excepted_output )
869- 
865+         lines  =  output .splitlines ()
866+         self .assertEqual (lines [0 ], "sys.path = [" )
867+         self .assertEqual (lines [- 4 ], "]" )
868+         excepted_base  =  f"USER_BASE: '{ site .getuserbase ()}  '"  + \
869+             f" ({ self .exists (site .getuserbase ())}  )" 
870+         print (excepted_base )
871+         self .assertEqual (lines [- 3 ], excepted_base )
872+         excepted_site  =  f"USER_SITE: '{ site .getusersitepackages ()}  '"  + \
873+             f" ({ self .exists (site .getusersitepackages ())}  )" 
874+         self .assertEqual (lines [- 2 ], excepted_site )
875+         self .assertEqual (lines [- 1 ], f"ENABLE_USER_SITE: { site .ENABLE_USER_SITE }  " )
876+         
877+ 
878+     @unittest .skipIf (sys .platform  ==  'wasi' , "Popen not supported on WASI" ) 
870879    def  test_unknown_args (self ):
871880        return_code , output  =  self .invoke_command_line ("--unknown-arg" )
872881        excepted_return_code , _  =  self .get_excepted_output ("--unknown-arg" )
873882        self .assertEqual (return_code , excepted_return_code )
874883        self .assertIn ('[--user-base] [--user-site]' , output )
875884
885+     @unittest .skipIf (sys .platform  ==  'wasi' , "Popen not supported on WASI" ) 
876886    def  test_base_arg (self ):
877887        return_code , output  =  self .invoke_command_line ("--user-base" )
878888        excepted  =  self .get_excepted_output ("--user-base" )
879889        excepted_return_code , excepted_output  =  excepted 
880890        self .assertEqual (return_code , excepted_return_code )
881891        self .assertEqual (output , excepted_output )
882892
893+     @unittest .skipIf (sys .platform  ==  'wasi' , "Popen not supported on WASI" ) 
883894    def  test_site_arg (self ):
884895        return_code , output  =  self .invoke_command_line ("--user-site" )
885896        excepted  =  self .get_excepted_output ("--user-site" )
886897        excepted_return_code , excepted_output  =  excepted 
887898        self .assertEqual (return_code , excepted_return_code )
888899        self .assertEqual (output , excepted_output )
889900
901+     @unittest .skipIf (sys .platform  ==  'wasi' , "Popen not supported on WASI" ) 
890902    def  test_both_args (self ):
891903        return_code , output  =  self .invoke_command_line ("--user-base" ,
892904                                                       "--user-site" )
0 commit comments