
|W                 @   s  d  d l  Z d  d l j j Z d  d l Z d  d l Z d d   Z d d   Z	 d d   Z
 d d	   Z d
 d   Z d d   Z d d   Z d d   Z e j j j d  d d    Z e j j j d  d d    Z d d   Z d d   Z Gd d   d  Z d d   Z d d    Z d! d"   Z d# d$   Z d% d&   Z d' d(   Z Gd) d*   d*  Z d+ d,   Z e j j j d  d- d.    Z  d/ d0   Z! d1 d2   Z" d3 d4   Z# e j j d5  d6 d7    Z$ d8 d9   Z% d S):    Nc               C   s   t  j j j   d S)N   )pystdsysexc_info r   r   A/home/ronny/Projects/pytest-dev/py/testing/code/test_assertion.pyexvalue   s    r	   c               C   s   d S)N   r   r   r   r   r   f   s    r   c        	      C   s  y t    }  d } |  | k } | s t j d | f d |  | f  d d t j   k sf t j t   ru t j t   n d d t j |  d t j |   i } d d
 | i } t t j |    d  }  } } Wn t k
 rt	   } t
 |  } | j }  d } |  |  } | sd d d t j |  d d t j   k sQt j |  r`t j |  n d d t j |   d t j |  i } t t j |    d  }  } } Yn Xd  S)N   ==)%(py2)s
{%(py2)s = %(py0)s()
} == %(py5)spy0r   py5py2 assert %(py7)spy7zassert 2 == 3
zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}py6spy4)r   )r   r   )r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr	   str
startswith)	@py_assert1@py_assert4@py_assert3@py_format6@py_format8er   @py_assert5@py_format7r   r   r   test_assert	   s&    	    y   		    q  r*   c              C   s  t  j j t d  }  |  j   } t  j } | j } | j } d } | | |  } d  } | | k	 } | syt j	 d | f d | | f  d t j
 |  d t j
 |  d d t j   k s t j t   r t j
 t   n d d	 t j
 |  d
 t j
 |  d t j
 |  d d t j   k s,t j |  r;t j
 |  n d d t j
 |  i }	 d d |	 i }
 t t j |
    d  } } } } } } } d  S)NzF
        try:
            1/0
        finally:
            i = 42
    zdivision.+by zerois not%(py11)s
{%(py11)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.std
}.re
}.search
}(%(py8)s, %(py9)s)
} is not %(py14)spy11r   r   r   r   r   py14py9r   py8r   assert %(py16)sZpy16)r+   )r,   r1   )r   testraisesZeroDivisionErrorexconlyr   researchr   r   r   r   r   r   r   r   )excinfor   r"   r$   r(   @py_assert7@py_assert10Z@py_assert13@py_assert12@py_format15Z@py_format17r   r   r   test_assert_within_finally   s    		 	 	         r=   c        	      C   s  y t    }  d } |  | k } | s t j d | f d |  | f  d d t j   k sf t j t   ru t j t   n d d t j |  d t j |   i } d d
 | i } t t j |    d  }  } } Wn t k
 rt	   } t
 |  } | j }  d } |  |  } | sd d d t j |  d d t j   k sQt j |  r`t j |  n d d t j |   d t j |  i } t t j |    d  }  } } Yn Xd  S)Nr   r   )%(py2)s
{%(py2)s = %(py0)s()
} == %(py5)sr   r   r   r   r   assert %(py7)sr   zassert 2 == 3
zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   )r   )r>   r?   )r   r   r   r   r   r   r   r   r   r	   r    r!   )	r"   r#   r$   r%   r&   r'   r   r(   r)   r   r   r   test_assert_multiline_1#   s&    	    y   		    q  r@   c        	      C   s  y t    }  d } |  | k } | s t j d | f d |  | f  d d t j   k sf t j t   ru t j t   n d d t j |  d	 t j |   i } d d | i } t t j |    d  }  } } Wn t k
 rt	   } t
 |  } | j }  d } |  |  } | sd
 d d t j |  d d t j   k sQt j |  r`t j |  n d d	 t j |   d t j |  i } t t j |    d  }  } } Yn Xd  S)N   r   r   r   )%(py2)s
{%(py2)s = %(py0)s()
} == %(py5)sr   r   r   r   r   assert %(py7)sr   zassert 2 ==zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   )rA   r   r   )r   )rB   rC   )r   r   r   r   r   r   r   r   r   r	   r    r!   )	r"   r#   r$   r%   r&   r'   r   r(   r)   r   r   r   test_assert_multiline_2,   s&    	    y   		    q  rE   c        	      C   s  y d }  d d g } |  | k } | s t  j d | f d |  | f  d t  j |   d t  j |  i } d d
 | i } t t  j |    d  }  } } Wn t k
 r|t   } t |  } | j } d } | |  } | sjd d d
 t  j |  d d t j	   k st  j
 |  r-t  j |  n d d t  j |  d t  j |  i } t t  j |    d  } } } Yn Xd  S)Nhir   r
   in%(py1)s in %(py4)spy1r   r   assert %(py6)sr   zassert 'hi' inzLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   )rG   )rH   rJ   )r   r   r   r   r   r	   r    r!   r   r   r   )	@py_assert0r$   @py_assert2@py_format5r)   r'   r   r"   r(   r   r   r   test_in5   s&        C   		    q  rN   c        	      C   s{  y d }  d } |  | k } | s t  j d | f d |  | f  d t  j |   d t  j |  i } d d	 | i } t t  j |    d  }  } } Wn t k
 rvt   } t |  } | j } d
 } | |  } | sdd d d	 t  j |  d d t j	   k st  j
 |  r't  j |  n d d t  j |  d t  j |  i } t t  j |    d  } } } Yn Xd  S)Nr   r
   is%(py1)s is %(py4)srI   r   r   assert %(py6)sr   zassert 1 is 2zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   )rO   )rP   rQ   )r   r   r   r   r   r	   r    r!   r   r   r   )	rK   r$   rL   rM   r)   r'   r   r"   r(   r   r   r   test_is=   s&        C   		    q  rR   zsys.version_info < (2,6)c              C   s  Gd d   d t   }  |    } y | j } d } | | k } | s t j d | f d | | f  d d t j   k s t j |  r t j |  n d d t j |  d	 t j |  i } d d | i } t t j	 |    d  } } } Wn t k
 rt
   } t |  } | j } d } | |  }	 |	 sd
 d d t j |	  d d t j   k spt j |  rt j |  n d d	 t j |  d t j |  i }
 t t j	 |
    d  } } }	 Yn Xd  S)Nc               @   s   e  Z d  Z d Z d S)ztest_attrib.<locals>.Foor   N)__name__
__module____qualname__br   r   r   r   FooH   s   rW   r
   r   )%(py2)s
{%(py2)s = %(py0)s.b
} == %(py5)sr   ir   r   r   assert %(py7)sr   zassert 1 == 2zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   )r   )rX   rZ   )objectrV   r   r   r   r   r   r   r   r   r	   r    r!   )rW   rY   r"   r#   r$   r%   r&   r'   r   r(   r)   r   r   r   test_attribF   s*    		    y   		    q  r\   c        
      C   s  Gd d   d t   }  y |    } | j } d } | | k } | s t j d | f d | | f  d t j |  d d t j   k s t j |   r t j |   n d d t j |  d	 t j |  i } d d | i } t t j	 |    d  } } } } Wn t k
 rt
   } t |  } | j } d } | |  } | sd
 d d t j |  d d t j   k st j |  rt j |  n d d t j |  d	 t j |  i }	 t t j	 |	    d  } } } Yn Xd  S)Nc               @   s   e  Z d  Z d Z d S)ztest_attrib_inst.<locals>.Foor   N)rS   rT   rU   rV   r   r   r   r   rW   T   s   rW   r
   r   @%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s()
}.b
} == %(py7)sr   r   r   r   r   assert %(py9)sr/   zassert 1 == 2zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   )r   )r]   r^   )r[   rV   r   r   r   r   r   r   r   r   r	   r    r!   )
rW   r"   r$   @py_assert6r(   r&   @py_format10r'   r   r)   r   r   r   test_attrib_instR   s*    	 	       		    q  ra   c              C   s  t  t d   }  y
t |   } d } | | k } | st j d | f d | | f  d d t j   k s{ t j |   r t j |   n d d t j |  d d	 t j   k s t j t  r t j t  n d	 d
 t j |  i } d d | i } t	 t j
 |    d  } } } Wnt	 k
 rt   } t |  } | j } d }	 | |	  } | sd d d t j |  d d t j   k st j |  rt j |  n d d t j |  d t j |	  i } t	 t j
 |    d  } }	 } d }
 |
 | k } | st j d | f d |
 | f  d t j |
  d
 d t j   k s_t j |  rnt j |  n d i } d d | i } t	 t j
 |    d  }
 } Yn Xd  S)N*   d   r   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)srI   lr   r   lenpy3r   assert %(py8)sr0   zassert 42 == 100zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   r   r   zwhere 42 = len([rG   %(py1)s in %(py3)sassert %(py5)sr   )r   )rd   rh   )rG   )ri   rj   )listrangerf   r   r   r   r   r   r   r   r   r	   r    r!   )re   rL   r(   r#   r)   @py_format9r'   r   r"   r$   rK   @py_format4r%   r   r   r   test_len]   s6           		    q     j   ro   c        
      C   s  d d d  }  y d } |  d |  } | s d d d d	 t  j   k sX t j |   rg t j |   n d	 d
 t j |  d t j |  i } t t j |    d  } } Wn t k
 rt   } d } | j } | | k } | st j	 d | f d | | f  d t j |  d t j |  d d t  j   k sIt j |  rXt j |  n d i } d d | i }	 t t j |	    d  } } } Yn Xd  S)Nr   c             S   s   d S)NFr   )xr   r   r   r   i   s    z"test_assert_keyword_arg.<locals>.f   rp   r   z.assert %(py4)s
{%(py4)s = %(py0)s(x=%(py2)s)
}r   r   r   r   zx=5rG   +%(py1)s in %(py5)s
{%(py5)s = %(py3)s.msg
}r   rI   rg   r'   assert %(py7)sr   )rG   )rr   rs   )
r   r   r   r   r   r   r   r	   msgr   )
r   r"   r$   rM   r'   rK   r#   rL   r%   r&   r   r   r   test_assert_keyword_argh   s$       b  	 	   y   ru   c               @   s   e  Z d  Z d d   Z d S)	WeirdReprc             C   s   d S)Nz<WeirdRepr
second line>r   )selfr   r   r   __repr__s   s    zWeirdRepr.__repr__N)rS   rT   rU   rx   r   r   r   r   rv   r   s   rv   c              C   sx  t    }  y d } |  | k } | s t j d | f d |  | f  d d t j   k sf t j |   ru t j |   n d d t j |  i } d d	 | i } t t j |    d  } } Wnt k
 rst	   } | j
 } | j } d
 } | |  } d }	 |	 }
 | |
 k } | st j d | f d | |
 f  d t j |	  d t j |  d d t j   k szt j |  rt j |  n d d t j |  d t j |  d t j |  i } d d | i } t t j |    d  } } } } } }	 }
 | j
 } | j } d } | |  } d }	 |	 }
 | |
 k } | st j d | f d  | |
 f  d t j |	  d t j |  d d t j   k st j |  rt j |  n d d t j |  d t j |  d t j |  i } d! d | i } t t j |    d  } } } } } }	 }
 d } | sid" d t j |  i } t t j |    d  } Yn Xd  S)#Nr   r   %(py0)s == %(py3)sr   vrg   r   assert %(py5)sr   rv   !=e%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.msg
}.find
}(%(py6)s)
} != -%(py11)sr-   r   r'   r   r   r0   assert %(py14)sr.   zsecond liner   assert %(py1)srI   )r   )ry   r{   )r|   )r}   r~   )r|   )r}   r~   r   )rv   r   r   r   r   r   r   r   r   r	   rt   find)rz   rL   r"   rn   r%   r'   r$   r(   r9   r:   r;   @py_assert9@py_format13r<   rK   @py_format2r   r   r   bug_test_assert_reprv   sP    	   j   		 	          	 	              r   c              C   s  yT d }  |  sM t  j d g  d d t  j |   i } t t  j |    d  }  WnGt k
 rt   } | j } | j } d } | |  } d } | } | | k }	 |	 s{t  j d |	 f d | | f  d t  j |  d	 t  j |  d
 d t	 j
   k st  j |  rt  j |  n d d t  j |  d t  j |  d t  j |  i }
 d d |
 i } t t  j |    d  } } } } }	 } } Yn Xd  S)Nr   rk   z
>assert %(py1)srI   r   r|   e%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.msg
}.find
}(%(py6)s)
} != -%(py11)sr-   r   r   r'   r   r   r0   r   assert %(py14)sr.   )r|   )r   r   )r   _format_assertmsgr   r   r   r	   rt   r   r   r   r   r   )rK   r   r'   r"   r$   r(   r9   r:   r;   r   r   r<   r   r   r   test_assert_non_string   s(      )  
		 	          r   c              C   s  y d d d g }  d d d g } |  | k } | s t  j d | f d |  | f  d d t j   k su t  j |   r t  j |   n d d t  j |  i } d d | i } t t  j |    d  } } WnGt k
 rt   } | j	 } | j
 } d } | |  } d }	 |	 }
 | |
 k } | st  j d | f d | |
 f  d t  j |	  d t  j |  d d t j   k st  j |  rt  j |  n d d t  j |  d t  j |  d t  j |  i } d d | i } t t  j |    d  } } } } } }	 }
 Yn Xd  S)Nr   r
   r   r|   %(py0)s != %(py3)sr   rp   rg   r   assert %(py5)sr   zassert [1, 2, 3] !=e%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.msg
}.find
}(%(py6)s)
} != -%(py11)sr-   r   r'   r   r   r0   assert %(py14)sr.   )r|   )r   r   )r|   )r   r   )r   r   r   r   r   r   r   r   r	   rt   r   )rp   rL   r"   rn   r%   r'   r$   r(   r9   r:   r;   r   r   r<   r   r   r   test_assert_implicit_multiline   s.       j   		 	          r   c              C   sN   Gd d   d  }  t  |     } | j j d  d k rJ t j j d  d  S)Nc               @   s   e  Z d  Z d d   Z d S)z3test_assert_with_brokenrepr_arg.<locals>.BrokenReprc             S   s   d d d  S)Nr   r   )rw   r   r   r   rx      s    z<test_assert_with_brokenrepr_arg.<locals>.BrokenRepr.__repr__N)rS   rT   rU   rx   r   r   r   r   
BrokenRepr   s   r   zbroken __repr__r   z$broken __repr__ not handle correctlyrD   )r   rt   r   r   r2   fail)r   r'   r   r   r   test_assert_with_brokenrepr_arg   s    r   c        	      C   s  y d }  d } |  | k } | s t  j d | f d |  | f  d d t j   k sc t  j |   rr t  j |   n d d t  j |  i } d d
 | i } t t  j |    d  } } Wn t k
 rt   } d } | j	 } | | k } | st  j d | f d | | f  d
 t  j |  d t  j |  d d t j   k sUt  j |  rdt  j |  n d i } d d | i } t t  j |    d  } } } Yn Xd  S)Nr   r
   r   %(py0)s == %(py3)sr   arg   r   assert %(py5)sr   zassert 1 == 2rG   +%(py1)s in %(py5)s
{%(py5)s = %(py3)s.msg
}rI   r'   assert %(py7)sr   )r   )r   r   )rG   )r   r   )
r   r   r   r   r   r   r   r   r	   rt   )	r   rL   r"   rn   r%   r'   rK   r#   r&   r   r   r   !test_multiple_statements_per_line   s&        j   	 	   y   r   c        	      C   s  y d }  d } |  | } d } | | k } | s t  j d | f d | | f  d t  j |  d t  j |   d t  j |  i } d d | i } t t  j |    d  }  } } } } Wn t k
 rt   } d }  | j } |  | k } | st  j d | f d |  | f  d t  j |  d t  j |   d d t j   k sYt  j	 |  rht  j |  n d i } d d | i } t t  j |    d  }  } } Yn Xd  S)Nr
   r      r   (%(py1)s ** %(py3)s) == %(py7)sr   rI   rg   r   assert %(py9)sr/   zassert (2 ** 3) == 7rG   +%(py1)s in %(py5)s
{%(py5)s = %(py3)s.msg
}r   r'   assert %(py7)s)r   )r   r   )rG   )r   r   )
r   r   r   r   r   r	   rt   r   r   r   )	rK   rL   r#   r_   r(   r&   r`   r'   r%   r   r   r   
test_power   s*      
    R   	 	   y   r   c               @   s4   e  Z d  Z d d   Z d d   Z d d   Z d S)TestViewc             C   s   t  j j d  j |  _ d  S)Nzpy._code._assertionold)r   r2   importorskipView)clsr   r   r   setup_class   s    zTestView.setup_classc                s  Gd d   d |  j     Gd d   d    } G  f d d   d     G f d d   d   } d	 }   |  } | j } |   } d
 } | | k } | snt j d | f d | | f  d t j |  d t j |  d d t j   k st j    rt j    n d d t j |  d t j |  d t j |  i }	 d d |	 i }
 t t j	 |
    d  } } } } } } d d d g d g }   |  } | j } |   } d } | | k } | st j d | f d  | | f  d t j |  d t j |  d d t j   k s3t j    rBt j    n d d t j |  d t j |  d t j |  i }	 d! d |	 i }
 t t j	 |
    d  } } } } } } d d i }   |  } | j } |   } d } | | k } | st j d" | f d# | | f  d t j |  d t j |  d d t j   k sZt j    rit j    n d d t j |  d t j |  d t j |  i }	 d$ d |	 i }
 t t j	 |
    d  } } } } } } d  S)%Nc               @   s   e  Z d  Z d S)z/TestView.test_class_dispatch.<locals>.PicklableN)rS   rT   rU   r   r   r   r   	Picklable   s   r   c               @   s"   e  Z d  Z e Z d d   Z d S)z,TestView.test_class_dispatch.<locals>.Simplec             S   s   t  |  j  S)N)repr__obj__)rw   r   r   r   pickle   s    z3TestView.test_class_dispatch.<locals>.Simple.pickleN)rS   rT   rU   r[   __view__r   r   r   r   r   Simple   s   r   c                   s1   e  Z d  Z e e e f Z   f d d   Z d S)z)TestView.test_class_dispatch.<locals>.Seqc                s#   d j    f d d   |  j D  S)N;c                s"   g  |  ] }   |  j     q Sr   )r   ).0item)r   r   r   
<listcomp>   s   	 zDTestView.test_class_dispatch.<locals>.Seq.pickle.<locals>.<listcomp>)joinr   )rw   )r   r   r   r      s    z0TestView.test_class_dispatch.<locals>.Seq.pickleN)rS   rT   rU   rk   tupledictr   r   r   )r   r   r   Seq   s   r   c                   s(   e  Z d  Z e Z   f d d   Z d S)z*TestView.test_class_dispatch.<locals>.Dictc                s'     j  |   d   |  j    j    S)N!)r   values)rw   )r   r   r   r      s    z1TestView.test_class_dispatch.<locals>.Dict.pickleN)rS   rT   rU   r   r   r   r   )r   r   r   Dict   s   r   {   Z123r   d%(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}.pickle
}()
} == %(py11)sr-   r   r   r   r   r0   r   assert %(py13)spy13r   r
   r   rA   z1;2;3;4z1!2)r   )r   r   )r   )r   r   )r   )r   r   )
r   r   r   r   r   r   r   r   r   r   )rw   r   r   r"   r$   r(   r9   r:   r   @py_format12@py_format14r   )r   r   r   test_class_dispatch   sJ      	 	         	 	         	 	       zTestView.test_class_dispatchc       	         sa  Gd d   d  } | d d d  | d d d  | d	 d
 d d  | d d d  g } Gd d   d |  j     Gd d   d    }   f d d   | D } d d d d g } | | k } | sSt j d! | f d" | | f  d d t j   k st j |  rt j |  n d d t j |  i } d# d  | i } t t j |    d  } } d  S)$Nc               @   s"   e  Z d  Z d Z d d   Z d S)z9TestView.test_viewtype_class_hierarchy.<locals>.Operationz+Existing class that I don't want to change.c             W   s   | |  _  | |  _ d  S)N)opnameargs)rw   r   r   r   r   r   __init__   s    	zBTestView.test_viewtype_class_hierarchy.<locals>.Operation.__init__N)rS   rT   rU   __doc__r   r   r   r   r   	Operation   s   r   +rA   rq   getitemr   r   setattrrp   yr   -   r   c               @   s(   e  Z d  Z d d   Z d d   Z d S)z4TestView.test_viewtype_class_hierarchy.<locals>.PyOpc             S   s   |  j  S)N)r   )rw   r   r   r   __viewkey__   s    z@TestView.test_viewtype_class_hierarchy.<locals>.PyOp.__viewkey__c             S   s&   d |  j  d j t t |  j   f S)Nz%s(%s)z, )r   r   mapr   r   )rw   r   r   r   generate   s    z=TestView.test_viewtype_class_hierarchy.<locals>.PyOp.generateN)rS   rT   rU   r   r   r   r   r   r   PyOp   s   r   c               @   s"   e  Z d  Z d Z d d   Z d S)	z:TestView.test_viewtype_class_hierarchy.<locals>.PyBinaryOpr   r   */c             S   s"   d |  j  d |  j |  j  d f S)Nz%s %s %sr   r   )r   r   )rw   r   r   r   r      s    zCTestView.test_viewtype_class_hierarchy.<locals>.PyBinaryOp.generateN)r   r   r   r   )rS   rT   rU   r   r   r   r   r   r   
PyBinaryOp   s   r   c                s"   g  |  ] }   |  j     q Sr   )r   )r   op)r   r   r   r      s   	 z:TestView.test_viewtype_class_hierarchy.<locals>.<listcomp>z4 + 5zgetitem('', 'join')zsetattr('x', 'y', 3)z12 - 1r   %(py0)s == %(py3)sr   	codelinesrg   assert %(py5)sr   )r   )r   r   )	r   r   r   r   r   r   r   r   r   )	rw   r   Zexistingr   r   rL   r"   rn   r%   r   )r   r   test_viewtype_class_hierarchy   s       j   z&TestView.test_viewtype_class_hierarchyN)rS   rT   rU   r   r   r   r   r   r   r   r      s   r   c               C   s"   t  j j t  j j t  j j d  S)N)r   code_AssertionError_reinterpret_old_reinterpretr   r   r   r   test_underscore_api   s    

r   c             C   s  t  j d  } |  j | d d d    y d } d } | | k } | s t j d | f d | | f  d	 t j |  d
 t j |  i } d d | i } t t j |    d  } } } Wn t k
 rt   } t	 |  } d } | | k } | st j d | f d | | f  d	 t j |  d d t
 j   k sNt j |  r]t j |  n d i }	 d d |	 i }
 t t j |
    d  } } Yn Xd  S)Nz_pytest.assertion.util_reprcomparec              W   s   d S)Nhellor   )r   r   r   r   <lambda>   s    z6test_assert_customizable_reprcompare.<locals>.<lambda>r   rA   r   %(py1)s == %(py4)srI   r   r   assert %(py6)sr   r   rG   %(py1)s in %(py3)srg   r   assert %(py5)sr   )r   )r   r   )rG   )r   r   )pytestr   r   r   r   r   r   r   r	   r    r   r   r   )monkeypatchutilrK   r$   rL   rM   r)   r'   r   rn   r%   r   r   r   $test_assert_customizable_reprcompare   s*        C   	   j   r   c              C   sT  y d  d d g f g }  t  |  k } | s t j d | f d t  |  f  d d t j   k sl t j t   r{ t j t   n d d t j |   i } d d
 | i } t t j |    d  } }  Wnt k
 rOt	   } t
 |  } d } | | k }  |  st j d |  f d | | f  d t j |  d d t j   k sRt j |  rat j |  n d i } d d
 | i } t t j |    d  } }  d } | | k }  |  sAt j d |  f d | | f  d t j |  d d t j   k st j |  rt j |  n d i } d d
 | i } t t j |    d  } }  Yn Xd  S)Nz
somet textz	more textr   %(py0)s == %(py3)sr   rf   rg   r   assert %(py5)sr   zre-runnot in%(py1)s not in %(py3)srI   r   rG   %(py1)s in %(py3)s)r   )r   r   )r   )r   r   )rG   )r   r   )rf   r   r   r   r   r   r   r   r   r	   r    )rL   r"   rn   r%   r'   r   rK   r   r   r   test_assert_long_source_1   s2       j   	   j   
   j   r   c              C   sT  y d  d d g f g }  t  |  k } | s t j d | f d t  |  f  d d t j   k sl t j t   r{ t j t   n d d t j |   i } d d
 | i } t t j |    d  } }  Wnt k
 rOt	   } t
 |  } d } | | k }  |  st j d |  f d | | f  d t j |  d d t j   k sRt j |  rat j |  n d i } d d
 | i } t t j |    d  } }  d } | | k }  |  sAt j d |  f d | | f  d t j |  d d t j   k st j |  rt j |  n d i } d d
 | i } t t j |    d  } }  Yn Xd  S)Nz
somet textz	more textr   %(py0)s == %(py3)sr   rf   rg   r   assert %(py5)sr   zre-runr   %(py1)s not in %(py3)srI   r   rG   %(py1)s in %(py3)s)r   )r   r   )r   )r   r   )rG   )r   r   )rf   r   r   r   r   r   r   r   r   r	   r    )rL   r"   rn   r%   r'   r   rK   r   r   r   test_assert_long_source_2   s2       j   	   j   
   j   r   c             C   s6   |  j  d  |  j   } | j j d d d g  d  S)Nz
    import sys
    EX = AssertionError
    def test_hello():
        raise EX("hello"
            "multi"
            "line")
    z*def test_hello*z
*raise EX*z
*1 failed*)
makepyfile	runpyteststdoutfnmatch_lines)testdirresultr   r   r   test_assert_raise_alias  s    	r   zsys.version_info < (2,5)c                 s  G  f d d   d t     y   d   Wnt  k
 rt t    }  d } | |  k } | s t j d | f d | |  f  d t j |  d d	 t j   k s t j |   r t j |   n d	 i } d d | i } t  t j	 |    d  } } d } | |  k } | st j d | f d | |  f  d t j |  d d	 t j   k set j |   rtt j |   n d	 i } d d | i } t  t j	 |    d  } } Yn Xd  S)Nc                   s%   e  Z d  Z    f d d   Z   S)z*test_assert_raise_subclass.<locals>.SomeExc                s   t    |   j   d  S)N)superr   )rw   r   )SomeEx	__class__r   r   r     s    z3test_assert_raise_subclass.<locals>.SomeEx.__init__)rS   rT   rU   r   r   )r   )r   r   r     s   r   r   zre-runr   %(py1)s not in %(py3)srI   rg   r   r   assert %(py5)sr   zcould not determinerG   %(py1)s in %(py3)s)r   )r   r   )rG   )r   r   )
r   r    r	   r   r   r   r   r   r   r   )r   rK   rL   rn   r%   r   )r   r   test_assert_raise_subclass  s&       j   
   j   r   c                 s<  G  f d d   d t     d d   }  y5    } d } | | k  } |  |  } | } | sFt j d | f d | | f  d t j |  d	 d t j   k s t j    r t j    n d d
 t j |  i } d d d d t j   k st j |   rt j |   n d d t j |  d | i } t t j |    d  } } } } } Wn t k
 r7t	   } t
 |  }	 d }
 |
 |	 k } | s)t j d | f d |
 |	 f  d	 t j |
  d
 d t j   k st j |	  rt j |	  n d i } d d | i } t t j |    d  }
 } Yn Xd  S)Nc                   s:   e  Z d  Z d d   Z   f d d   Z d d   Z d S)zAtest_assert_raises_in_nonzero_of_object_pytest_issue10.<locals>.Ac             S   s   t  d   d  S)Nrb   )
ValueError)rw   r   r   r   __nonzero__'  s    zMtest_assert_raises_in_nonzero_of_object_pytest_issue10.<locals>.A.__nonzero__c                s       S)Nr   )rw   other)Ar   r   __lt__)  s    zHtest_assert_raises_in_nonzero_of_object_pytest_issue10.<locals>.A.__lt__c             S   s   d S)Nz<MY42 object>r   )rw   r   r   r   rx   +  s    zJtest_assert_raises_in_nonzero_of_object_pytest_issue10.<locals>.A.__repr__N)rS   rT   rU   r   r   rx   r   )r   r   r   r   &  s   r   c             S   s   d S)NTr   )rp   r   r   r   myany-  s    zEtest_assert_raises_in_nonzero_of_object_pytest_issue10.<locals>.myanyr   <(%(py3)s
{%(py3)s = %(py1)s()
} < %(py6)sr   rI   rg   r   z2assert not %(py10)s
{%(py10)s = %(py0)s(%(py8)s)
}r   r   py10r0   z<MY42 object> < 0rG   %(py1)s in %(py3)sr   assert %(py5)sr   )r   )r  )rG   )r  r  )r[   r   r   r   r   r   r   r   r   r	   r    )r   rL   r(   r#   r   @py_assert11r)   r   r'   r   rK   rn   r%   r   )r   r   6test_assert_raises_in_nonzero_of_object_pytest_issue10%  s.    	      y Y  	   j   r  )&builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   r   r	   r   r*   r=   r@   rE   rN   rR   r2   markskipifr\   ra   ro   ru   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   <module>   s:     				!!


;!