;
Μβ"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 m Z m Z m Z d  d l	 m
 Z
 m Z m Z Gd   d e  j  Z Gd   d e  j  Z d   Z e d	 k o e   n d S(
   i    N(   u   verboseu   run_unittestu   forget(   u	   _run_codeu   _run_module_codeu
   run_modulec             B   s2   |  Ee  Z d  d g Z d Z d   Z d   Z d S(   u   Top level assignmentu   Lower level referenceu§  # Check basic code execution
result = ['Top level assignment']
def f():
    result.append('Lower level reference')
f()
# Check the sys module
import sys
run_argv0 = sys.argv[0]
run_name_in_sys_modules = __name__ in sys.modules
if run_name_in_sys_modules:
   module_in_sys_modules = globals() is sys.modules[__name__].__dict__
# Check nested operation
import runpy
nested = runpy._run_module_code('x=1\n', mod_name='<run>')
c             C   sέ   t  j d } t |  j i   } |  j | d |  j k  |  j | d d  k  |  j | d d  k  |  j | d d  k  |  j | d d  k  |  j | d | k  |  j d | k  |  j t  j d | k  d  S(	   Ni    u   resultu   __name__u   __file__u
   __loader__u   __package__u	   run_argv0u   run_name(   u   sysu   argvu	   _run_codeu   test_sourceu
   failUnlessu   expected_resultu   None(   u   selfu   saved_argv0u   d(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_run_code%   s    c       	      C   s}  t    } d } d } d } d } t d |  } t j d } t |  j | | | | |  } |  j d | k  |  j | d | k  |  j | d |  j  |  j | d d	 d
  |  j | d | k  |  j | d  |  j | d  |  j | d | k  |  j | d | k  |  j | d | k  |  j | d | k  |  j t j d | k  |  j | t j	 k  d  S(   Nu
   <Nonsense>u   Some other nonsenseu   Now you're just being sillyu    u   initiali    u   resultu   nestedu   xi   u   __name__u   run_name_in_sys_modulesu   module_in_sys_modulesu   __file__u	   run_argv0u
   __loader__u   __package__(
   u   objectu   dictu   sysu   argvu   _run_module_codeu   test_sourceu
   failUnlessu   assertEqualu   expected_resultu   modules(	   u   selfu   initialu   nameu   fileu   loaderu   packageu   d1u   saved_argv0u   d2(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_run_module_code1   s4    			N(   u   __name__u
   __module__u   expected_resultu   test_sourceu   test_run_codeu   test_run_module_code(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   RunModuleCodeTest   s   
	u   RunModuleCodeTestc             B   s}   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d d  Z d	   Z d
   Z d   Z d S(   c          	   C   s:   y t  |  Wn t k
 o Yn X|  j d |  d  S(   Nu   Expected import error for (   u
   run_moduleu   ImportErroru   fail(   u   selfu   mod_name(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   expect_import_errorP   s
    c             C   s_   |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  d  S(   Nu   sysu   sys.imp.ericu   os.path.halfu   a.beeu   .howardu   ..eatenu   logging(   u   expect_import_error(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_invalid_namesX   s    c             C   s   t  d  d  S(   Nu   runpy(   u
   run_module(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_library_moduled   s    c             C   s?   t  j |  t  j j | d  } t | d  } | j   | S(   Nu   __init__.pyu   w(   u   osu   mkdiru   pathu   joinu   openu   close(   u   selfu   pkg_diru	   pkg_fnameu   pkg_file(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   _add_pkg_dirg   s
    
c             C   sC  d } d } t  j   } } t o t d |  n t j j d |  t o t d t j d  n xh t |  D]Z } t j j	 | |  } |  j
 |  } t o t d |  n t o t d |  qs qs Wt j j	 | |  }	 t |	 d  }
 |
 j |  |
 j   t o t d |	  n | d	 | d
 } | |	 | f S(   Nu   __runpy_pkg__u   runpy_test.pyu     Package tree in:i    u     Updated sys.path:u     Next level in:u
     Created:u   wu   .u
   runpy_test(   u   tempfileu   mkdtempu   verboseu   printu   sysu   pathu   insertu   rangeu   osu   joinu   _add_pkg_diru   openu   writeu   close(   u   selfu   sourceu   depthu   pkg_nameu
   test_fnameu   pkg_diru   sub_diru   iu	   pkg_fnameu	   mod_fnameu   mod_fileu   mod_name(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu	   _make_pkgn   s0         
 c             C   sδ  x5 t  t j  D]$ } | j d  o t j | =q q Wt o t d  n t j d =t o t d  n xt j | d d D]υ \ } } } xm | D]e } y  t j
 t j j | |   Wq t k
 o0 }	 z t o t |	  n WYd  d  }	 ~	 Xq Xq Wxs | D]k } t j j | |  }
 y t j |
  Wqt k
 o0 }	 z t o t |	  n WYd  d  }	 ~	 XqXqWq Wy& t j |  t o t d  n Wn< t k
 o0 }	 z t o t |	  n WYd  d  }	 ~	 Xn Xd  S(   Nu   __runpy_pkg__u     Removed sys.modules entriesi    u     Removed sys.path entryu   topdownu     Removed package treeF(   u   listu   sysu   modulesu
   startswithu   verboseu   printu   pathu   osu   walku   Falseu   removeu   joinu   OSErroru   rmdir(   u   selfu   topu   depthu   mod_nameu   entryu   rootu   dirsu   filesu   nameu   exu   fullname(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   _del_pkg   sB      
     &  *  c             C   s  |  j  d |  \ } } } t |  z· t o t d |  n t |  } |  j d | k  |  j | d d  ~ t |  t j	 |  t o t d |  n t |  } |  j d | k  |  j | d d  ~ Wd  |  j
 | | |  Xt o t d  n d  S(   Nu   x=1
u   Running from source:u   xi   u   Running from compiled:u   Module executed successfully(   u	   _make_pkgu   forgetu   verboseu   printu
   run_moduleu
   failUnlessu   assertEqualu
   __import__u   osu   removeu   _del_pkg(   u   selfu   depthu   pkg_diru	   mod_fnameu   mod_nameu   d1u   d2(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   _check_module   s(    
 
  c             C   s_  | d k o t  d   n d } | } x/ t |  D]! } | } t j j | |  } q6 Wt j j | d  } t | d  }	 |	 j   t o t d |  n t j j | d  }
 |  j	 |
  t o t d |
  n t j j |
 d	  } |  j	 |  t o t d
 |  n t j j | d  } t | d  } | j   t o t d |  n d  S(   Ni   u$   Relative module test needs depth > 1u   __runpy_pkg__u
   sibling.pyu   wu     Added sibling module:u   uncleu     Added uncle package:u   cousinu     Added cousin package:u	   nephew.pyu     Added nephew module:(
   u
   ValueErroru   rangeu   osu   pathu   joinu   openu   closeu   verboseu   printu   _add_pkg_dir(   u   selfu   base_diru   sourceu   depthu   pkg_nameu
   module_diru   iu
   parent_diru   sibling_fnameu   sibling_fileu	   uncle_diru
   cousin_diru   nephew_fnameu   nephew_file(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   _add_relative_modules°   s4     
   
 c       
      C   s  d } |  j  | |  \ } } } z;|  j | | |  | j d  d } t o t d |  n t | d | } |  j d | k  |  j | d | k  |  j d | k  |  j d | k  ~ t |  t j	 |  t o t d	 |  n t | d | }	 |  j d |	 k  |  j |	 d | k  |  j d |	 k  |  j d |	 k  ~	 Wd  |  j
 | | |  Xt o t d
  n d  S(   Nua   \
from __future__ import absolute_import
from . import sibling
from ..uncle.cousin import nephew
u   .i    u   Running from source:u   run_nameu   __package__u   siblingu   nephewu   Running from compiled:u   Module executed successfully(   u	   _make_pkgu   _add_relative_modulesu
   rpartitionu   verboseu   printu
   run_moduleu
   failUnlessu
   __import__u   osu   removeu   _del_pkg(
   u   selfu   depthu   run_nameu   contentsu   pkg_diru	   mod_fnameu   mod_nameu   pkg_nameu   d1u   d2(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   _check_relative_importsΙ   s4     
  c             C   s@   x9 t  d  D]+ } t o t d |  n |  j |  q Wd  S(   Ni   u   Testing package depth:(   u   rangeu   verboseu   printu   _check_module(   u   selfu   depth(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_run_moduleθ   s
      c             C   sC   x< t  d d  D]+ } t o t d |  n |  j |  q Wd  S(   Ni   i   u"   Testing relative imports at depth:(   u   rangeu   verboseu   printu   _check_relative_imports(   u   selfu   depth(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_explicit_relative_importν   s
      c             C   sF   x? t  d d  D]. } t o t d |  n |  j | d  q Wd  S(   Ni   i   u'   Testing main relative imports at depth:u   __main__(   u   rangeu   verboseu   printu   _check_relative_imports(   u   selfu   depth(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   test_main_relative_importς   s
      N(   u   __name__u
   __module__u   expect_import_erroru   test_invalid_namesu   test_library_moduleu   _add_pkg_diru	   _make_pkgu   _del_pkgu   _check_moduleu   _add_relative_modulesu   Noneu   _check_relative_importsu   test_run_moduleu   test_explicit_relative_importu   test_main_relative_import(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   RunModuleTestN   s   
										u   RunModuleTestc               C   s   t  t  t  t  d  S(   N(   u   run_unittestu   RunModuleCodeTestu   RunModuleTest(    (    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu	   test_mainψ   s    
u   __main__(   u   unittestu   osu   os.pathu   sysu   tempfileu   test.supportu   verboseu   run_unittestu   forgetu   runpyu	   _run_codeu   _run_module_codeu
   run_moduleu   TestCaseu   RunModuleCodeTestu   RunModuleTestu	   test_mainu   __name__(    (    (    u,   /mit/python/lib/python3.0/test/test_runpy.pyu   <module>   s   	=ͺ	