;
Μβ"Ic               @   s   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z Gd   d e j  Z	 d   Z
 e d k o e
   n d S(   i    N(   u   run_unittestc             B   sD   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d S(   c             O   si   d |  _  x3 |  j  t j k o |  j  t j t j  7_  q W|  j  d |  _ t j	 j
 |  | |  d  S(   Nu   PACKAGE_u   .foo(   u   package_nameu   sysu   modulesu   randomu   chooseu   stringu   ascii_lettersu   module_nameu   unittestu   TestCaseu   __init__(   u   selfu   argsu   kw(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   __init__   s    	  c             C   s?   x8 |  j  |  j f D]$ } | t j k o t j | =q q Wd  S(   N(   u   package_nameu   module_nameu   sysu   modules(   u   selfu   module_name(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   remove_modules   s     c             C   s   t  j   |  _ t j j |  j  t j j |  j |  j  |  _	 t j
 |  j	  t t j j |  j	 d  d  t j j |  j	 d  |  _ d  S(   Nu   __init__.pyu   wu   foo.py(   u   tempfileu   mkdtempu   test_diru   sysu   pathu   appendu   osu   joinu   package_nameu   package_diru   mkdiru   openu   module_path(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   setUp   s    c             C   s   x9 t  j |  j  D]% } t  j t  j j |  j |   q Wt  j |  j  t  j |  j  |  j t	 j j
 |  j  d  t	 j j |  j  |  j   d  S(   Ni    (   u   osu   listdiru   package_diru   removeu   pathu   joinu   rmdiru   test_diru   assertNotEqualu   sysu   countu   remove_modules(   u   selfu   file(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   tearDown   s     #c             C   so   x? d D]7 } |  j  | } t j j |  o t j |  q q Wt |  j  d  } | j |  | j   d  S(   Nu   cou   w(   u   module_pathu   osu   pathu   existsu   removeu   openu   writeu   close(   u   selfu   contentsu	   extensionu   compiled_pathu   f(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   rewrite_file%   s     c             C   s-  |  j  d  y t |  j  Wn t k
 o Yn Xt d   |  j |  j t j k o t t j |  j	 d   d } x. | t
 t  k o | t j t j  7} q~ W|  j  |  y t |  j  Wn t k
 o Yn Xt d   |  j  d |  t |  j  j } |  j t | |  d  d  S(   Nu   foru   Failed to induce SyntaxErroru   foou   au   Failed to induce NameError.u   %s = 1i   (   u   rewrite_fileu
   __import__u   module_nameu   SyntaxErroru   RuntimeErroru   assert_u   sysu   modulesu   hasattru   package_nameu   diru   __builtins__u   randomu   chooseu   stringu   ascii_lettersu	   NameErroru   foou   assertEqualu   getattr(   u   selfu   varu   module(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   test_package_import__semantics.   s*         N(   u   __name__u
   __module__u   __init__u   remove_modulesu   setUpu   tearDownu   rewrite_fileu   test_package_import__semantics(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu
   TestImport   s   
								u
   TestImportc               C   s   t  t  d  S(   N(   u   run_unittestu
   TestImport(    (    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu	   test_mainM   s    u   __main__(   u   osu   sysu   stringu   randomu   tempfileu   unittestu   test.supportu   run_unittestu   TestCaseu
   TestImportu	   test_mainu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_pkgimport.pyu   <module>   s
   HH	