;
Μβ"Ic               @   s4  d  Z  d d l Z d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d e j k o d d l Z n e d   e j j e j  p$ e j e j  e j e j  n Gd   d e j  Z Gd   d	 e  Z Gd
   d e j  Z d   Z e d k o e   n d S(   u   Tests for 'site'.

Tests assume the initial paths in sys.path once the interpreter has begun
executing have not been removed.

i    N(   u   TestSkippedu   run_unittestu   TESTFNu   siteu!   importation of site.py suppressedc             B   s\   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	 S(
   u   Tests for helper functions.

    The setting of the encoding (set using sys.setdefaultencoding) used by
    the Unicode implementation is not tested.

    c             C   s   t  j d d  |  _ d S(   u   Save a copy of sys.pathN(   u   sysu   pathu   sys_path(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   setUp#   s    c             C   s   |  j  t _ d S(   u   Restore sys.pathN(   u   sys_pathu   sysu   path(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   tearDown'   s    c             C   s   d } t  j j |   } t j |   \ } } |  j t  j j |  |  | t  j j |  k o |  j | |  n |  j t  j j |  |  d  S(   Nu	   Beginningu   End(   u	   Beginningu   End(   u   osu   pathu   joinu   siteu   makepathu   failUnlessEqualu   abspathu   normcase(   u   selfu
   path_partsu   original_diru   abs_diru   norm_dir(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_makepath+   s    c             C   sN   t  j   } x; d   t j D D]& } |  j | | k d | | f  q  Wd  S(   Nc             S   sF   g  } |  ]8 } | o+ t  j j |  o | t j |  d  q
 q
 S(   i   (   u   osu   pathu   isdiru   siteu   makepath(   u   .0u   _[1]u   path(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu
   <listcomp>:   s    uB   %s from sys.path not found in set returned by _init_pathinfo(): %s(   u   siteu   _init_pathinfou   sysu   pathu
   failUnless(   u   selfu   dir_setu   entry(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_init_pathinfo8   s     c             C   sj   |  j  | j t j k d | j  |  j  t j | j  d t j k  |  j  t j j	 | j
   d S(   u>   Contain common code for testing results of reading a .pth fileu   %s not in sys.pathi    N(   u
   failUnlessu   importedu   sysu   modulesu   siteu   makepathu   good_dir_pathu   pathu   osu   existsu   bad_dir_path(   u   selfu   pth_file(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   pth_file_tests@   s    &c          
   C   sb   t    } | j d d  z7 | j   t j | j | j t    |  j	 |  Wd  | j   Xd  S(   Nu   prepT(
   u   PthFileu   cleanupu   Trueu   createu   siteu
   addpackageu   base_diru   filenameu   setu   pth_file_tests(   u   selfu   pth_file(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_addpackageG   s    	
c          	   C   s\   t    } | j d d  z1 | j   t j | j t    |  j |  Wd  | j   Xd  S(   Nu   prepT(	   u   PthFileu   cleanupu   Trueu   createu   siteu
   addsitediru   base_diru   setu   pth_file_tests(   u   selfu   pth_file(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_addsitedirV   s    	
c             C   s  t  j } |  j | t j k  t j t j d d | g  } |  j | d  t j t j d d d | g  } |  j | d  t	 j
 j   } d | d <t j t j d d | g d | } |  j | d  t	 j
 j   } d	 | d
 <t j t j d d g d | } |  j | d  d  S(   Nu   -cu$   import sys; sys.exit(%r in sys.path)i   u   -si    u   1u   PYTHONNOUSERSITEu   envu   /tmpu   PYTHONUSERBASEu=   import sys, site; sys.exit(site.USER_BASE.startswith("/tmp"))(   u   siteu	   USER_SITEu   assert_u   sysu   pathu
   subprocessu   callu
   executableu   assertEqualu   osu   environu   copy(   u   selfu   usersiteu   rcu   env(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_s_optionc   s(    	
	
		N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu   test_makepathu   test_init_pathinfou   pth_file_testsu   test_addpackageu   test_addsitediru   test_s_option(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   HelperFunctionsTests   s   
							u   HelperFunctionsTestsc             B   s>   |  Ee  Z d  Z e d d d d  Z d   Z d d  Z d S(	   u/   Helper class for handling testing of .pth filesu   timeu   __testdir__u   __badc             C   s   | d |  _  t j j d  |  _ t j j |  j |  j   |  _ | |  _ | |  _ | |  _	 t j j |  j |  j  |  _
 t j j |  j |  j	  |  _ d S(   u   Initialize instance variablesu   .pthu    N(   u   filenameu   osu   pathu   abspathu   base_diru   joinu	   file_pathu   importedu   good_dirnameu   bad_dirnameu   good_dir_pathu   bad_dir_path(   u   selfu   filename_baseu   importedu   good_dirnameu   bad_dirname(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   __init__   s    			c          
   C   s   t  |  j d  } za t d d | t d d | t d |  j d | t |  j d | t |  j d | Wd | j   Xt j |  j	  d S(   uo  Create a .pth file with a comment, blank lines, an ``import
        <self.imported>``, a line with self.good_dirname, and a line with
        self.bad_dirname.

        Creation of the directory for self.good_dir_path (based off of
        self.good_dirname) is also performed.

        Make sure to call self.cleanup() to undo anything done by this method.

        u   wu   #import @bad module nameu   fileu   
u	   import %sN(
   u   openu	   file_pathu   printu   importedu   good_dirnameu   bad_dirnameu   closeu   osu   mkdiru   good_dir_path(   u   selfu   FILE(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   create   s    c             C   sα   t  j j |  j  o t  j |  j  n | o7 t j j |  j  |  _	 |  j	 o t j |  j =q n" |  j	 o |  j	 t j |  j <n t  j j |  j
  o t  j |  j
  n t  j j |  j  o t  j |  j  n d S(   u°   Make sure that the .pth file is deleted, self.imported is not in
        sys.modules, and that both self.good_dirname and self.bad_dirname are
        not existing directories.N(   u   osu   pathu   existsu	   file_pathu   removeu   sysu   modulesu   getu   importedu   imported_moduleu   good_dir_pathu   rmdiru   bad_dir_path(   u   selfu   prep(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   cleanup£   s    

NF(   u   __name__u
   __module__u   __doc__u   TESTFNu   __init__u   createu   Falseu   cleanup(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   PthFile~   s
   
	u   PthFilec             B   sw   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d S(   u(   Test side-effects from importing 'site'.c             C   s   t  j d d  |  _ d S(   u   Make a copy of sys.pathN(   u   sysu   pathu   sys_path(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   setUpΈ   s    c             C   s   |  j  t _ d S(   u   Restore sys.pathN(   u   sys_pathu   sysu   path(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   tearDownΌ   s    c             C   sk   t  j   xZ t t t f D]I } y) |  j t j j | j  t	 |   Wq t
 k
 o w Yq Xq Wd  S(   N(   u   siteu   abs__file__u   sysu   osu   builtinsu
   failUnlessu   pathu   isabsu   __file__u   repru   AttributeError(   u   selfu   module(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_abs__file__ΐ   s    
 )c             C   sK   t  j   t   } x1 t j D]& } |  j | | k  | j |  q Wd  S(   N(   u   siteu   removeduppathsu   setu   sysu   pathu
   failUnlessu   add(   u   selfu
   seen_pathsu   path(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_no_duplicate_pathsΞ   s    
	
 c             C   s   d  S(   N(    (   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_add_build_dirΧ   s    c             C   s0   |  j  t t d   |  j  t t d   d  S(   Nu   quitu   exit(   u
   failUnlessu   hasattru   builtins(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_setting_quitέ   s    c             C   s0   |  j  t t d   |  j  t t d   d  S(   Nu	   copyrightu   credits(   u
   failUnlessu   hasattru   builtins(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_setting_copyrightβ   s    c             C   s   |  j  t t d   d  S(   Nu   help(   u
   failUnlessu   hasattru   builtins(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_setting_helpη   s    c             C   s~   t  j d k oj d d  l } | j   d j d  o@ x= t j j j   D] } | d k o PqI qI W|  j d  qz n d  S(   Nu   win32i    i   u   cpu   mbcsu   did not alias mbcs(	   u   sysu   platformu   localeu   getdefaultlocaleu
   startswithu	   encodingsu   aliasesu   valuesu   fail(   u   selfu   localeu   value(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_aliasing_mbcsλ   s     	c             C   s   |  j  t t d   d  S(   Nu   setdefaultencoding(   u
   failUnlessu   hasattru   sys(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_setdefaultencoding_removedυ   s    c          	   C   sL   d t  j k o8 y d d  l } Wn t k
 o YqH X|  j d  n d  S(   Nu   sitecustomizei    u(   sitecustomize not imported automatically(   u   sysu   modulesu   sitecustomizeu   ImportErroru   fail(   u   selfu   sitecustomize(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   test_sitecustomize_executedω   s    N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu   test_abs__file__u   test_no_duplicate_pathsu   test_add_build_diru   test_setting_quitu   test_setting_copyrightu   test_setting_helpu   test_aliasing_mbcsu   test_setdefaultencoding_removedu   test_sitecustomize_executed(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   ImportSideEffectTests΅   s   
										
	u   ImportSideEffectTestsc               C   s   t  t t  d  S(   N(   u   run_unittestu   HelperFunctionsTestsu   ImportSideEffectTests(    (    (    u+   /mit/python/lib/python3.0/test/test_site.pyu	   test_main  s    u   __main__(   u   __doc__u   unittestu   test.supportu   TestSkippedu   run_unittestu   TESTFNu   builtinsu   osu   sysu	   encodingsu
   subprocessu   modulesu   siteu   pathu   isdiru	   USER_SITEu   makedirsu
   addsitediru   TestCaseu   HelperFunctionsTestsu   objectu   PthFileu   ImportSideEffectTestsu	   test_mainu   __name__(    (    (    u+   /mit/python/lib/python3.0/test/test_site.pyu   <module>   s&   c7N	