
:W9                 @   sX  d  d l  Z d  d l j j Z d  d l Z d  d l Z d  d l Z d  d l	 m
 Z
 m Z m Z m 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 d d   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 d% d&   Z d' d(   Z  d) d*   Z! d S)+    N)set	frozensetreversedsortedc              C   s   d d d g }  x t  |   D] \ } } | | k } | s t j d | f d | | f  d d t j   k s| t j |  r t j |  n d d d	 t j   k s t j |  r t j |  n d	 i } d d | i } t t j |    d  } q Wd  S)Nr         ==%(py0)s == %(py2)spy0ipy2x assert %(py4)spy4)r   )r	   r   )		enumerate
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)lr   r   @py_assert1@py_format3@py_format5 r   ?/home/ronny/Projects/pytest-dev/py/testing/root/test_builtin.pytest_enumerate   s         r    c              C   s  t  j }  |  j } d d d  g } | |  } | } | s d d 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 |   i } t t j	 |    d  }  } } } } t  j }  |  j } d d d  d g } | |  } | sd d d t j |  d t j |  d d t j   k sdt j t   rst j t   n d d	 t j |  d
 t j |   i } t t j	 |    d  }  } } } d  S)Nr   Fr   zfassert not %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.any
}(%(py6)s)
}r   py6r
   pypy8r   r   zbassert %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.any
}(%(py6)s)
})
r"   builtinanyr   r   r   r   r   r   r   )r   @py_assert3@py_assert5@py_assert7@py_assert9@py_format10@py_format9r   r   r   test_any   s"    	 	       	 	      r,   c              C   s  t  j }  |  j } d d d g } | |  } | } | s d d 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 |   i } t t j	 |    d  }  } } } } t  j }  |  j } d d t
 g } | |  } | sd d d t j |  d t j |  d d	 t j   k sat j t   rpt j t   n d	 d
 t j |  d t j |   i } t t j	 |    d  }  } } } d  S)NTr   Fr   zfassert not %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.all
}(%(py6)s)
}r   r!   r
   r"   r#   r   zbassert %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.all
}(%(py6)s)
})r"   r$   allr   r   r   r   r   r   r   object)r   r&   r'   r(   r)   r*   r+   r   r   r   test_all   s"    	 	       	 	      r/   c              C   s  t  j }  |  j } t t |  } | sd d d t j |  d d t j   k sa t j	 t  rp t j t  n d d t j |   d d t j   k s t j	 t  r t j t  n d d	 t j |  d
 d t j   k s t j	 t   r t j t   n d i } t
 t j |    d  }  } } t  j }  |  j } t t |  } | s@d d d t j |  d d t j   k st j	 t  rt j t  n d d t j |   d d t j   k st j	 t  rt j t  n d d	 t j |  d
 d t j   k st j	 t   r!t j t   n d i } t
 t j |    d  }  } } t  j }  |  j } t t |  } | sgd d d t j |  d d t j   k st j	 t  rt j t  n d d t j |   d d t j   k st j	 t  rt j t  n d d	 t j |  d
 d t j   k s9t j	 t   rHt j t   n d i } t
 t j |    d  }  } } Gd d   d t  } t  j }  |  j } t | |  } | } | sd d d t j |  d d t j   k st j	 t  rt j t  n d d t j |   d d t j   k s8t j	 |  rGt j |  n d d	 t j |  d
 d t j   k s}t j	 t   rt j t   n d i } t
 t j |    d  }  } } } t  j } | j }  |  j } d } | | k } | st j d | f d | | f  d t j |   d t j |  d	 t j |  d d t j   k s_t j	 t   rnt j t   n d d
 t j |  i } d  d | i }	 t
 t j |	    d  } }  } } } t j } d }
 | |
 k }  |  st j d! |  f d" | |
 f  d d t j   k s%t j	 t  r4t j t  n d d
 t j |  d t j |
  i } d# d | i } t
 t j |    d  } }  }
 d  S)$Nr   zuassert %(py8)s
{%(py8)s = %(py0)s(%(py1)s, %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.builtin
}.BaseException
})
}r#   r
   
issubclassr   py1
IndexErrorr!   r   r"   	ExceptionKeyboardInterruptc               @   s   e  Z d  Z d S)z)test_BaseException.<locals>.MyRandomClassN)__name__
__module____qualname__r   r   r   r   MyRandomClass   s   r8   zyassert not %(py8)s
{%(py8)s = %(py0)s(%(py1)s, %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.builtin
}.BaseException
})
}
exceptionsbuiltinsinr%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.BaseException
}.__module__
} in %(py9)spy9assert %(py11)spy11r   0%(py2)s
{%(py2)s = %(py0)s.__name__
} == %(py5)spy5assert %(py7)spy7)z
exceptionszbuiltins)r;   )r<   r>   )r   )r@   rB   )r"   r$   BaseExceptionr0   r2   r   r   r   r   r   r   r   r3   r4   r.   r6   r   r5   )r&   r'   r(   r+   r8   r)   r*   r   @py_assert8@py_format12@py_assert4@py_format6@py_format8r   r   r   test_BaseException   s`    	 	     	 	     	 	     	 	      	 	 	       	    y   rJ   c              C   sh  t  j }  |  j } | j } d } | | k } | s t j d | f d | | f  d t j |  d t j |  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  }  } } } } t  j } | j } t  j } | j }	 t | |	  }
 |
 sNd d d t j |	  d t j |
  d t j |  d d t j   k st j	 t  rt j t  n d d d	 t j   k st j	 t   rt j t   n d	 d d	 t j   k st j	 t   rt j t   n d	 d t j |  d t j |  i } t
 t j |    d  } } } }	 }
 d  S)Nr9   r:   r;   r%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.GeneratorExit
}.__module__
} in %(py9)sr   r=   r!   r
   r"   r   r   assert %(py11)sr?   zassert %(py12)s
{%(py12)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.builtin
}.GeneratorExit
}, %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.builtin
}.BaseException
})
}py10py12r#   r0   r1   py3rA   )z
exceptionszbuiltins)r;   )rK   rL   )r"   r$   GeneratorExitr6   r   r   r   r   r   r   r   r   rD   r0   )r   r&   r'   rE   r(   r*   rF   @py_assert2rG   r)   @py_assert11@py_format13r   r   r   test_GeneratorExit    s&    	 	 	       	 	 	 	     rT   c              C   s9  t  j j }  |  d  } t |  } | | k } | r<t j d f | f d f | | f  d d t j   k p| t j |  r t j	 |  n d d d t j   k p t j |  r t j	 |  n d d d t j   k p t j t  r t j	 t  n d d	 t j	 |  i } d
 d d | i } t
 t j |    d  } } d
 j t |   } d } | | k } | rt j d f | f d f | | f  d d t j   k pt j |  rt j	 |  n d d	 t j	 |  i } d
 d d | i } t
 t j |    d  } } d } |  |  }	 t |	  }
 |  |
  } t |  } d d d d d g } | | k } | rt j d f | f d f | | f  d t j	 |
  d t j	 |	  d d t j   k pt j t  rt j	 t  n d d t j	 |  d d t j   k pt j |   r/t j	 |   n d d t j	 |  d	 d t j   k pbt j |   rtt j	 |   n d d t j	 |  d d t j   k pt j t  rt j	 t  n d d t j	 |  i
 } d
 d d | i } t
 t j |    d  } }	 }
 } } } } t  j j t |  |  d   d  S) Nhelloisz0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} is %(py5)srA   rr1   r
   iterrO   r   zassert %(py7)srC   Zollehr   z%(py0)s == %(py3)sszassert %(py5)sher   oz%(py13)s
{%(py13)s = %(py0)s(%(py11)s
{%(py11)s = %(py1)s(%(py9)s
{%(py9)s = %(py2)s(%(py7)s
{%(py7)s = %(py3)s(%(py5)s)
})
})
})
} == %(py16)sr=   listpy16r   r?   py13r   zassert %(py18)spy18)r"   r$   r   rX   r   r   r   r   r   r   r   r   joinr]   testraises	TypeError)r   rW   rQ   rG   rH   rI   rY   r   @py_format4@py_assert6rE   @py_assert10@py_assert12@py_assert15@py_assert14@py_format17@py_format19r   r   r   test_reversed$   s>          
   p   
         ^   rm   c           
   C   s  t  d d d d g  }  d d d d g } t  |  } |  | 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 d t j   k s t j t   r t j t   n d i } d d | i } t t j |    d  } } } |  j	 t  d d g   } 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 s_t j |  rnt j |  n d i }	 d! d |	 i }
 t t j |
    d  } } d  S)"Nr   r         r   0%(py0)s == %(py6)s
{%(py6)s = %(py2)s(%(py4)s)
}r   r!   r
   rY   r   r   r   assert %(py8)sr#         r;   %(py1)s in %(py3)sr1   rO   s1assert %(py5)srA   )r   )rp   rq   )r;   )rt   rv   )r;   )rt   rv   )
r   r   r   r   r   r   r   r   r   union)rY   r&   r'   r   @py_format7r+   ru   @py_assert0rQ   re   rH   r   r   r   test_simple-   s0              j   
   j   rz   c           
   C   s4  t  t d d g  t d d g  g  }  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  } } } d  S)Nr   r   r   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr1   rY   r!   r
   lenrO   r   assert %(py8)sr#   )r   )r{   r}   )r   r   r|   r   r   r   r   r   r   r   r   )rY   rQ   r'   rG   rx   r+   r   r   r   test_frozenset4   s    *       r~   c              #   sK   t  t j j  k r d  Sx. t j j  g D]     f d d   }  |  Vq& Wd  S)Nc                 s  d d d g }    |   } d d d g } | | 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  }  } } } d d d g }  d }   |  d | } d d d g } | | k } | st  j d) | f d* | | f  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 d d d d d g d d d   }	 d d d d d d g }
 |	 |
 k }  |  s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 d d d g d d  d   }	 d d d d g }
 |	 |
 k }  |  st  j d/ |  f d0 |	 |
 f  d d t j   k st  j |	  rt  j |	  n d d t  j |
  i } d1 d | i } t t  j |    d  }  }
   d d d d g d d! d   d d" d   }	 d d d d g }
 |	 |
 k }  |  st  j d2 |  f d3 |	 |
 f  d d t j   k syt  j |	  rt  j |	  n d d t  j |
  i } d4 d | i } t t  j |    d  }  }
 d# d$   } d% j   }   | d | d t	 j
 d  S)5Nrn   r   r   r   0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sr   r
   rY   r   rC   r   assert %(py9)sr=   TreverseA%(py6)s
{%(py6)s = %(py0)s(%(py2)s, reverse=%(py4)s)
} == %(py9)sr!   assert %(py11)sr?   ro   rr   rs   keyc             S   s   |  d S)Nr   r   )r   r   r   r   <lambda>?   s    z+test_sorted.<locals>.test.<locals>.<lambda>%(py0)s == %(py3)sr   rO   assert %(py5)srA   cmpc             S   s   t  |  |  S)N)r   )r   yr   r   r   r   A   s    c             S   s   t  |  |  S)N)r   )r   r   r   r   r   r   C   s    c             S   s   |  d S)Nr   r   )r   r   r   r   r   D   s    c          
   S   sS  t  |   } | t k } | st j d | f d | t f  d d t j   k s` t j t  ro t j t  n d d d t j   k s t j |   r t j |   n d 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  } } t  |  } | t k } | s<t j d | f d | t f  d d t j   k st j t  rt j t  n d d d t j   k st j |  rt j |  n d 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  } } t
 |  |  S)Nr   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py5)srA   strr1   r   r
   typerO   r   assert %(py7)srC   r   )r   )r   r   )r   )r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   rQ   rG   rH   rI   r   r   r   compareG   s          
      
z*test_sorted.<locals>.test.<locals>.comparez,The quick Brown fox Jumped over The lazy Dog)r   )r   r   )r   )r   r   )r   )r   r   )r   )r   r   )r   )r   r   )r   r   r   r   r   r   r   r   splitr   lower)r   r&   rf   r'   rI   r*   rE   r(   rF   r   rQ   re   rH   r   data)rY   r   r   rb   <   s^                     *   j   
$   j   
!   j   
ztest_sorted.<locals>.test)r   r"   r$   )rb   r   )rY   r   test_sorted8   s
    r   c           
   C   s  d d l  m }  t j j t d  t j j   } |  d d d | | 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 |  i } d! d | i } t t	 j |    d  } } t j j   } |  d d d d | | 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 |  i } d$ d | i } t t	 j |    d  } } t j j   } |  d d d d d d d | | j   } d } | | k } | st	 j
 d% | f d& | | f  d
 d t j   k sxt	 j |  rt	 j |  n d d t	 j |  i } d' d | i } t t	 j |    d  } } Gd d   d  } t j j   } |  |   d | | 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  } } }
 }	 d  S)+Nr   )print_zprint_(hello=3)rU   worldfilezhello world
r   %(py0)s == %(py3)sr
   rY   rO   r   assert %(py5)srA   endxyzabcsepZxyzabcc               @   s   e  Z d  Z d d   Z d S)ztest_print_simple.<locals>.Xc             S   s   d S)Nrepr   )selfr   r   r   __repr__c   s    z%test_print_simple.<locals>.X.__repr__N)r5   r6   r7   r   r   r   r   r   Xb   s   r   zrep
G%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.getvalue
}()
} == %(py7)sr   fr   rC   assert %(py9)sr=   )r   )r   r   )r   )r   r   )r   )r   r   )r   )r   r   )
py.builtinr   r"   rb   rc   rd   ioTextIOgetvaluer   r   r   r   r   r   r   r   )r   r   rY   rQ   r   re   rH   r   r&   rf   r'   rI   r*   r   r   r   test_print_simpleP   sX       j   
   j   
   j   
	 	       r   c                s  |  j  d      j d  d d i } t j j t    |  | d } d } | | k } | r t j d f | f d f | | f  d t j |  d	 t j |  i } d
 d d | i } t	 t j
 |    d  } } } t j } | j } | d } | |  }	 |	 j }
 t    } |
 | k } | rt j d f | f d f |
 | f  d d t j   k pyt j t  rt j t  n d d t j |	  d d t j   k pt j t  rt j t  n d d t j |  d t j |  d t j |
  d t j |  d d t j   k p0t j    rBt j    n d d t j |  i	 } d
 d d | i } t	 t j
 |    d  } } } }	 }
 } } G  f d d   d  } | j } d } | | k } | rt j d f | f d f | | f  d d t j   k p"t j |  r4t j |  n d d t j |  d t j |  i } d
 d  d! | i } t	 t j
 |    d  } } } d  S)"Nztest.pyzx = y
def f(): passr   *   r   r   z%(py1)s == %(py4)sr   r1   r   zassert %(py6)sr!   r   z%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.getrawcode
}(%(py6)s)
}.co_filename
} == %(py15)s
{%(py15)s = %(py12)s(%(py13)s)
}rN   r   r#   r
   r"   rM   py15r_   	test_filer   zassert %(py17)spy17c                   s2   e  Z d  Z d Z d Z e j j e     d S)ztest_execfile.<locals>.Arn   ro   N)	r5   r6   r7   r   r   r"   r$   execfiler   r   )r   r   r   Ao   s   r   rn   z)%(py2)s
{%(py2)s = %(py0)s.x
} == %(py5)srA   zassert %(py7)srC   )ra   writer"   r$   r   r   r   r   r   r   r   code
getrawcodeco_filenamer   r   r   r   )tmpdirnsry   r&   rQ   r   rx   r   r'   r(   r)   rj   rR   @py_format16@py_format18r   rG   rH   rI   r   )r   r   test_execfileh   sD    
    I   	 	 
  	     (   	       r   c              C   s  d d   }  d |  _  t j j |   d } d } | | k } | s t j d | f d | | f  d t j |  d t j |  i } d d | i } t t j |    d  } } } t j } | j } d } | |  } d  }	 | |	 k }
 |
 st j d |
 f d | |	 f  d t j |  d d t	 j
   k sFt j t  rUt j t  n d d t j |  d t j |  d t j |	  d t j |  i } d d | i } t t j |    d  } } } } }
 }	 d  S)Nc               S   s   d  S)Nr   r   r   r   r   r   v   s    ztest_getfuncdict.<locals>.fro   r   r   %(py1)s == %(py4)sr   r1   r   assert %(py6)sr!   r   rV   p%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}._getfuncdict
}(%(py6)s)
} is %(py11)sr#   r
   r"   r?   r   assert %(py13)sr_   )r   )r   r   )rV   )r   r   )r   r"   r$   _getfuncdictr   r   r   r   r   r   r   r   )r   ry   r&   rQ   r   rx   r   r'   r(   rg   r)   rF   @py_format14r   r   r   test_getfuncdictu   s*    	    C   	 	         r   c        	      C   s  Gd d   d  }  t  j } | j } | t  } | s d d 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
 d t j   k s t j t  r t j t  n d i } t	 t j
 |    d  } } } t  j } | j } | |   } | sd d d t j |  d t j |  d d t j   k snt j t   r}t j t   n d d	 t j |  d
 d t j   k st j |   rt j |   n d i } t	 t j
 |    d  } } } t  j } | j } | t  } | sd d d t j |  d t j |  d d t j   k s\t j t   rkt j t   n d d	 t j |  d
 d t j   k st j t  rt j t  n d i } t	 t j
 |    d  } } } t  j } | j } | t  } | sd d d t j |  d t j |  d d t j   k sJt j t   rYt j t   n d d	 t j |  d
 d t j   k st j t  rt j t  n d i } t	 t j
 |    d  } } } t  j } | j } d } | |  } | } | sd d d t j |  d t j |  d d t j   k sEt j t   rTt j t   n d d t j |  d	 t j |  i } t	 t j
 |    d  } } } } } t  j } | j } d } | |  } | } | smd d d t j |  d t j |  d d t j   k s!t j t   r0t j t   n d d t j |  d	 t j |  i } t	 t j
 |    d  } } } } } d  S)Nc               @   s   e  Z d  Z d S)ztest_callable.<locals>.AN)r5   r6   r7   r   r   r   r   r   }   s    r   r   zgassert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.callable
}(%(py5)s)
}r   rC   r
   r"   r   rA   test_callabler]   idro   zkassert not %(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.callable
}(%(py6)s)
}r!   r#   hi)r"   r$   callabler   r   r   r   r   r   r   r   r]   r   )	r   r   r&   rf   rI   r'   r(   r)   r*   r   r   r   r   |   s^    	 	     	 	     	 	     	 	     	 	       	 	       r   c               C   s   t  j j d d  d  S)NrU   zUTF-8)r"   r$   _totextr   r   r   r   test_totext   s    r   c           
   C   s2  t  j d d k  r"t j }  |  j } | t k } | st j d | f d | t f  d t j |  d d t	 j
   k s t j t  r t j t  n d 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  }  } } t j }  |  j } | t k } | st j d | f d | t f  d t j |  d d t	 j
   k st j t  rt j t  n d 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  }  } } nt j }  |  j } | t k } | st j d | f d | t f  d t j |  d d t	 j
   k st j t  rt j t  n d 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  }  } } t j }  |  j } | t k } | s t j d | f d | t f  d t j |  d d t	 j
   k st j t  rt j t  n d 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  }  } } d  S)Nr   rn   r   I%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.text
} == %(py6)sr   r!   unicoder
   r"   r   r   assert %(py8)sr#   J%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}.bytes
} == %(py6)sr   bytes)r   )r   r   )r   )r   r   )r   )r   r   )r   )r   r   )sysversion_infor"   r$   textr   r   r   r   r   r   r   r   r   r   r   )r   r&   r'   rx   r+   r   r   r   test_bytes_text   sB    	 	      	 	      	 	      	 	      r   c              C   s8   t  j d k r d }  n d }  t j j d d |   d  S)Nrn   surrogateescapereplace   ¦zUTF-8)rn   )r   r   r"   r$   r   )errorsr   r   r   test_totext_badutf8   s    	r   c              C   s`   d d l  m }  y t    Wn' t k
 rF t j   \ } } } Yn Xt j j t d  } d  S)Nr   )_reraisez_reraise(cls, val, tb))r   r   r3   r   exc_infor"   rb   rc   )r   clsvaltbexcinfor   r   r   test_reraise   s    r   c        
      C   s  g  }  t  j j d  d g } |  | k } | s t j d | f d |  | f  d d t j   k ss t j |   r t j |   n d d t j |  i } d d
 | i } t	 t j
 |    d  } } i  } t  j j d |  | d } d } | | k } | smt j d | f d | | f  d t j |  d t j |  i } d d | i }	 t	 t j
 |	    d  } } } d  S)Nzl.append(1)r   r   %(py0)s == %(py3)sr
   r   rO   r   assert %(py5)srA   zx=4r   ro   %(py1)s == %(py4)sr   r1   assert %(py6)sr!   )r   )r   r   )r   )r   r   )r"   r$   exec_r   r   r   r   r   r   r   r   )
r   rQ   r   re   rH   dry   r&   r   rx   r   r   r   	test_exec   s&    	   j   

    C   r   c              C   s  t  j j t t  j j d  t  j j d d  }  |  t  k } | s t j d | f d |  t  f  d d t j	   k s t j
 |   r t j |   n d d d t j	   k s t j
 t   r t j t   n d i } d d | i } t t j |    d  } t  j j d d  }  t  j } |  | 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 d t j	   k st j
 t   rt j t   n d i } d d | i } t t j |    d  } } d  S)NZxqwe123Z
asldkajsdlr"   r   %(py0)s == %(py2)sr
   r   r   r   assert %(py4)sr   zpy.path,%(py0)s == %(py4)s
{%(py4)s = %(py2)s.path
}assert %(py6)sr!   )r   )r   r   )r   )r   r   )r"   rb   rc   ImportErrorr$   
_tryimportr   r   r   r   r   r   r   r   path)r   r   r   r   r&   rx   r   r   r   test_tryimport   s          	      r   c        
      C   sB  t  j j t  }  t j } t |  |  } | sd d d t j |  d d t	 j
   k sj t j |   ry t j |   n d d t j |  d d t	 j
   k s t j t  r t j t  n d d	 d
 t	 j
   k s t j t  r t j t  n d
 i } t t j |    d  } } t  j } | j } d } | |  } d  } | | k } | s$t j d | f d | | f  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	 t j |  i } d d | i }	 t t j |	    d  } } } } } } d  S)Nr   zSassert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.CodeType
})
}r   r1   r   r!   r
   
isinstancer   typesro   rV   l%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.builtin
}._getcode
}(%(py6)s)
} is %(py11)sr#   r"   r?   assert %(py13)sr_   )rV   )r   r   )r"   r$   _getcodetest_getcoder   CodeTyper   r   r   r   r   r   r   r   r   )
r   r&   r'   rx   r   r(   rg   r)   rF   r   r   r   r   r      s$    	     
	 	         r   )"r:   r   _pytest.assertion.rewrite	assertionrewriter   r   r   r"   r   r   r   r   r   r    r,   r/   rJ   rT   rm   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s2     "			