mς
­fIc           @   s   d  Z  d k Z d k l Z l Z d k l Z l Z e o d k Z d k	 Z	 d   Z
 n d e i f d     YZ d   Z e d j o e   n d S(	   s/   
   Test cases for codeop.py
   Nick Mathewson
N(   s   run_unittests	   is_jython(   s   compile_commands   PyCF_DONT_IMPLY_DEDENTc         C   s<   x5 |  i   D]' \ } } t |  o t |  | <q q W|  S(   N(   t   dt   itemst   nt   vt   callable(   R    R   R   (    (    t-   /mit/python/lib/python2.4/test/test_codeop.pyt   unify_callables   s
     t   CodeopTestsc           B   sS   t  Z d d  Z d d  Z d d d  Z d   Z d   Z d   Z d	   Z RS(
   Nt   singlec   	      B   s.  e  oς e | d |  } |  i |  | d j oV h  h  } } e	 i
 } e i   e	 _
 z  | | Ue | d d  | UWd | e	 _
 XnQ | d j oC h  d d <} h  d e | |  <} h  d e | |  <} n |  i e |  e |   n2 e | d | e  } |  i e | d |  |  d S(   s(   succeed iff str is a valid piece of codes   <input>R   Nt   evalt   ai   t   value(   t	   is_jythont   compile_commandt   strt   symbolt   codet   selft   assert_R    t   rt   syst   stdoutt   saved_stdoutt	   cStringIOt   StringIOt   compilet   ctxR	   t   assertEqualsR   t   PyCF_DONT_IMPLY_DEDENTt   expected(	   R   R   R   R   R   R    R   R   R   (    (    R   t   assertValid   s(     	  c         C   s    |  i t | d | d  d S(   s5   succeed iff str is the start of a valid piece of codeR   N(   R   R   R   R   R   t   None(   R   R   R   (    (    R   t   assertIncomplete-   s     i   c         C   sh   y! t  | d | |  i d  Wn@ t j
 o |  i |  n" t j
 o |  i |  n Xd S(   s8   succeed iff str is the start of an invalid piece of codeR   s$   No exception thrown for invalid codeN(	   R   R   R   R   t   failt   SyntaxErrorR   t	   is_syntaxt   OverflowError(   R   R   R   R#   (    (    R   t   assertInvalid1   s     c         C   s  |  i } t pN |  i t d  t d d d t   |  i t d  t d d d t   n | d  | d  | d  | d  | d  | d	  | d
  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d d  | d d  | d d  | d d  | d d  | d  d  | d! d  d  S("   Nt    t   passs   <input>R   s   
s   a = 1s   
a = 1s   a = 1
s   a = 1

s	   

a = 1

s   def x():
  pass
s   if 1:
 pass
s   

if 1: pass
s   

if 1: pass

s   def x():

 pass
s   def x():
  pass
  
s   def x():
  pass
 
s   pass
s   3**3
s   if 9==3:
   pass
else:
   pass
s(   if 1:
 pass
 if 1:
  pass
 else:
  pass
s   #a
#b
a = 3
s   #a

   
a=3
s   a=3

s
   a = 9+ \
3s   3**3R	   s   (lambda z: 
 z**3)s   9+ \
3s   9+ \
3
s   

a**3s   
 
a**3s
   #a
#b
a**3(   R   R   t   avR   R   R   R   R   (   R   R(   (    (    R   t
   test_valid;   sJ    	






















c         C   sb  |  i } | d  | d  | d  | d  | d  | d  | d  | d  | d  | d	  | d
  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d  | d d  | d d  | d d  | d d  | d d  | d d  | d  d  d  S(!   Ns   (a **s   (a,b,s   (a,b,(s   a = (s   a = {s   b + {s   if 9==3:
   pass
else:s   if 9==3:
   pass
else:
s   if 9==3:
   pass
else:
   passs   if 1:s   if 1:
s    if 1:
 pass
 if 1:
  pass
 else:s!   if 1:
 pass
 if 1:
  pass
 else:
s'   if 1:
 pass
 if 1:
  pass
 else:
  passs   def x():s	   def x():
s
   def x():

s   def x():
  passs   def x():
  pass
 s   def x():
  pass
  s   

def x():
  passs   a = 9+ \s   a = 'a\s	   a = '''xyR&   R	   s   
t   (s   (


s   (9+s   9+ \s   lambda z: \(   R   R    t   ai(   R   R+   (    (    R   t   test_incompleteo   sB    	
























c         C   sγ   |  i } | d  | d  | d  | d  | d  | d  | d  | d  | d	  | d
  | d  | d d  | d d  | d d  | d d  | d d  | d d  | d d  | d d  d  S(   Ns   a bs   a @s   a b @s   a ** @s   a = s   a = 9 +s   def x():

pass
s   

 if 1: pass

passs	   a = 9+ \
s   a = 'a\ s   a = 'a\
s   a = 1R	   s   a = (t   ]s   ())s   [}s   9+s	   lambda z:(   R   R%   R+   (   R   R+   (    (    R   t   test_invalid   s(    	










c         C   sZ   |  i t d d  i t d d d  i  |  i t d d  i t d d d  i  d  S(   Ns   a = 1
t   abcR   t   def(   R   R   R   t   co_filenameR   t   assertNotEquals(   R   (    (    R   t   test_filename΄   s    (	   t   __name__t
   __module__R   R    R%   R)   R,   R.   R3   (    (    (    R   R      s   
	4	)	c           C   s   t  t  d  S(   N(   t   run_unittestR   (    (    (    R   t	   test_main»   s    t   __main__(   t   __doc__t   unittestt   test.test_supportR6   R   t   codeopR   R   R   R   R   t   TestCaseR   R7   R4   (
   R   R:   R   R   R7   R6   R   R   R   R   (    (    R   t   ?   s   			§	