£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

]                 @   s|   d  d l  Z  d  d l Z d  d l Z d d l m Z d  d l m Z d Z d d   Z d Z	 d	 Z
 Gd
 d   d e  Z d S)    N   )util)wrapsTc                s"   t       f d d    } | S)Nc                s,   t  |  d d  r |  j     |  | |  S)NfailfastF)getattrstop)selfargskw)method +/opt/alt/python35/lib64/python3.5/result.pyinner   s    
zfailfast.<locals>.inner)r   )r   r   r   )r   r   r      s    r   z
Stdout:
%sz
Stderr:
%sc               @   s9  e  Z d  Z d Z d Z d Z d d d 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 d d    Z e d d    Z d d   Z d d   Z d d   Z d d   Z e d d     Z d! d"   Z d# d$   Z d% d&   Z d' d(   Z d) d*   Z d+ d,   Z d S)-
TestResultNFc             C   s   d |  _  g  |  _ g  |  _ d |  _ g  |  _ g  |  _ g  |  _ d |  _ d |  _ d |  _	 d  |  _
 d  |  _ t j |  _ t j |  _ d |  _ d  S)NFr   )r   failureserrorstestsRunskippedexpectedFailuresunexpectedSuccesses
shouldStopbuffer	tb_locals_stdout_buffer_stderr_buffersysstdout_original_stdoutstderr_original_stderr_mirrorOutput)r   streamZdescriptions	verbosityr   r   r   __init__&   s    												zTestResult.__init__c             C   s   d  S)Nr   )r   r   r   r   printErrors7   s    zTestResult.printErrorsc             C   s&   |  j  d 7_  d |  _ |  j   d  S)Nr   F)r   r    _setupStdout)r   testr   r   r   	startTest:   s    	zTestResult.startTestc             C   sR   |  j  rN |  j d  k r6 t j   |  _ t j   |  _ |  j t _ |  j t _ d  S)N)r   r   ioStringIOr   r   r   r   )r   r   r   r   r%   @   s    	zTestResult._setupStdoutc             C   s   d  S)Nr   )r   r   r   r   startTestRunH   s    zTestResult.startTestRunc             C   s   |  j    d |  _ d  S)NF)_restoreStdoutr    )r   r&   r   r   r   stopTestN   s    
zTestResult.stopTestc             C   s   |  j  r |  j r t j j   } t j j   } | rc | j d  sO | d 7} |  j j t	 |  | r | j d  s | d 7} |  j
 j t |  |  j t _ |  j
 t _ |  j j d  |  j j   |  j j d  |  j j   d  S)N
r   )r   r    r   r   getvaluer   endswithr   writeSTDOUT_LINEr   STDERR_LINEr   seektruncater   )r   outputerrorr   r   r   r+   S   s$    		

zTestResult._restoreStdoutc             C   s   d  S)Nr   )r   r   r   r   stopTestRunh   s    zTestResult.stopTestRunc             C   s/   |  j  j | |  j | |  f  d |  _ d  S)NT)r   append_exc_info_to_stringr    )r   r&   errr   r   r   addErrorn   s    "zTestResult.addErrorc             C   s/   |  j  j | |  j | |  f  d |  _ d  S)NT)r   r8   r9   r    )r   r&   r:   r   r   r   
addFailurev   s    "zTestResult.addFailurec             C   s   | d  k	 r{ t  |  d d  r( |  j   t | d | j  rJ |  j } n	 |  j } | j | |  j | |  f  d |  _ d  S)Nr   Fr   T)	r   r   
issubclassfailureExceptionr   r   r8   r9   r    )r   r&   Zsubtestr:   r   r   r   r   
addSubTest}   s    
	zTestResult.addSubTestc             C   s   d  S)Nr   )r   r&   r   r   r   
addSuccess   s    zTestResult.addSuccessc             C   s   |  j  j | | f  d  S)N)r   r8   )r   r&   reasonr   r   r   addSkip   s    zTestResult.addSkipc             C   s&   |  j  j | |  j | |  f  d  S)N)r   r8   r9   )r   r&   r:   r   r   r   addExpectedFailure   s    	zTestResult.addExpectedFailurec             C   s   |  j  j |  d  S)N)r   r8   )r   r&   r   r   r   addUnexpectedSuccess   s    zTestResult.addUnexpectedSuccessc             C   sQ   t  |  j  t  |  j  k o) d k n oP t |  d  pP t  |  j  d k S)Nr   r   )lenr   r   hasattrr   )r   r   r   r   wasSuccessful   s    .zTestResult.wasSuccessfulc             C   s   d |  _  d  S)NT)r   )r   r   r   r   r      s    zTestResult.stopc             C   s%  | \ } } } x" | r3 |  j  |  r3 | j } q W| | j k rU |  j |  } n d  } t j | | | d | d |  j } t | j    } |  j	 rt
 j j   }	 t
 j j   }
 |	 r |	 j d  s |	 d 7}	 | j t |	  |
 r|
 j d  s|
 d 7}
 | j t |
  d j |  S)Nlimitcapture_localsr-    )_is_relevant_tb_leveltb_nextr>   _count_relevant_tb_levels	tracebackTracebackExceptionr   listformatr   r   r   r.   r   r/   r8   r1   r2   join)r   r:   r&   exctypevaluetblengthZtb_eZmsgLinesr5   r6   r   r   r   r9      s*    	

zTestResult._exc_info_to_stringc             C   s   d | j  j k S)N
__unittest)tb_frame	f_globals)r   rU   r   r   r   rK      s    z TestResult._is_relevant_tb_levelc             C   s:   d } x- | r5 |  j  |  r5 | d 7} | j } q	 W| S)Nr   r   )rK   rL   )r   rU   rV   r   r   r   rM      s
    
z$TestResult._count_relevant_tb_levelsc             C   s5   d t  j |  j  |  j t |  j  t |  j  f S)Nz!<%s run=%i errors=%i failures=%i>)r   Zstrclass	__class__r   rE   r   r   )r   r   r   r   __repr__   s    !zTestResult.__repr__)__name__
__module____qualname__Z_previousTestClassZ_testRunEnteredZ_moduleSetUpFailedr#   r$   r'   r%   r*   r,   r+   r7   r   r;   r<   r?   r@   rB   rC   rD   rG   r   r9   rK   rM   r[   r   r   r   r   r      s0   	r   )r(   r   rN   rJ   r   	functoolsr   rW   r   r1   r2   objectr   r   r   r   r   <module>   s   