mς
­fIc           @   s   d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d k l Z d e i f d     YZ	 d   Z
 e d j o e
   n d  S(   N(   s   run_unittestt
   TestImportc           B   s>   t  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         O   sl   d |  _ x6 t i i |  i  o |  i t i t i  7_ q W|  i d |  _	 t
 i i |  | |  d  S(   Nt   PACKAGE_s   .foo(   t   selft   package_namet   syst   modulest   has_keyt   randomt   chooset   stringt   letterst   module_namet   unittestt   TestCaset   __init__t   argst   kw(   R   R   R   (    (    t0   /mit/python/lib/python2.4/test/test_pkgimport.pyR      s    	  c         C   sB   x; |  i |  i f D]' } t i i |  o t i | =q q Wd  S(   N(   R   R   R   R   R   R   (   R   R   (    (    R   t   remove_modules   s     c         C   s€   t  i   |  _ t i i |  i  t i i |  i |  i	  |  _
 t i |  i
  t t i i |  i
 d t i d  d  t i i |  i
 d t i d  |  _ d  S(   NR   t   pyt   wt   foo(   t   tempfilet   mkdtempR   t   test_dirR   t   patht   appendt   ost   joinR   t   package_dirt   mkdirt   opent   extsept   module_path(   R   (    (    R   t   setUp   s    *c         C   s   x9 t  i |  i  D]% } t  i t  i i |  i |   q Wt  i |  i  t  i |  i	  |  i
 t i i |  i	  d  t i i |  i	  |  i   d  S(   Ni    (   R   t   listdirR   R   t   filet   removeR   R   t   rmdirR   t   assertNotEqualR   t   countR   (   R   R$   (    (    R   t   tearDown   s     #c         C   so   x? d D]7 } |  i | } t i i |  o t i |  q q Wt |  i d  } | i
 |  | i   d  S(   Nt   coR   (   t	   extensionR   R!   t   compiled_pathR   R   t   existsR%   R   t   ft   writet   contentst   close(   R   R0   R+   R.   R,   (    (    R   t   rewrite_file%   s     c         C   s)  |  i d  y t |  i  Wn t j
 o n Xt d  |  i t i i	 |  i  o t
 t i |  i d   d } x. | t t  j o | t i t i  7} q~ W|  i |  y t |  i  Wn t j
 o n Xt d  |  i d |  t |  i  i } |  i t | |  d  d  S(   Nt   fors   Failed to induce SyntaxErrorR   t   as   Failed to induce NameError.s   %s = 1i   (   R   R2   t
   __import__R   t   SyntaxErrort   RuntimeErrort   assert_R   R   R   t   hasattrR   t   vart   dirt   __builtins__R   R   R	   R
   t	   NameErrorR   t   modulet   assertEqualt   getattr(   R   R>   R:   (    (    R   t   test_package_import__semantics.   s(      	8   	(   t   __name__t
   __module__R   R   R"   R)   R2   RA   (    (    (    R   R       s   								c           C   s   t  t  d  S(   N(   t   run_unittestR    (    (    (    R   t	   test_mainM   s    t   __main__(   R   R   R	   R   R   R   t   test.test_supportRD   R   R    RE   RB   (	   R	   R   R   R   R   RE   RD   R    R   (    (    R   t   ?   s
   6H	