ó
ç'ÊUc           @  sî   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l	 m
 Z
 m Z m Z m Z d  d l m Z d e j f d „  ƒ  YZ d	 e j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   print_functionN(   t
   LogCapture(   t   Failure(   t   failure_to_exc_infot   TopLevelFormattert   LogCounterHandlert   StreamLogger(   t   get_crawlert   FailureToExcInfoTestc           B  s   e  Z d  „  Z d „  Z RS(   c         C  sO   y d d Wn& t  k
 r4 t j ƒ  } t ƒ  } n X|  j | t | ƒ ƒ d  S(   Ni    (   t   ZeroDivisionErrort   syst   exc_infoR   t   assertTupleEqualR   (   t   selfR   t   failure(    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_failure   s    c         C  s   |  j  t d ƒ ƒ d  S(   Nt   test(   t   assertIsNoneR   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_non_failure   s    (   t   __name__t
   __module__R   R   (    (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR      s   		t   TopLevelFormatterTestc           B  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  s)   t  ƒ  |  _ |  j j t d g ƒ ƒ d  S(   NR   (   R   t   handlert	   addFilterR   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   setUp    s    c         C  s?   t  j d ƒ } |  j  } | j d ƒ Wd  QX| j d ƒ d  S(   NR   s   test log msgt   WARNING(   s   tests   WARNINGs   test log msg(   t   loggingt	   getLoggerR   t   warningt   check(   R   t   loggert   l(    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_top_level_logger$   s    c         C  s?   t  j d ƒ } |  j  } | j d ƒ Wd  QX| j d ƒ d  S(   Ns
   test.test1s   test log msgR   R   (   s   tests   WARNINGs   test log msg(   R   R   R   R   R   (   R   R   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_children_logger+   s    c         C  s?   t  j d ƒ } |  j  } | j d ƒ Wd  QX| j d ƒ d  S(   Nt   test2s   test log msgR   (   s   test2s   WARNINGs   test log msg(   R   R   R   R   R   (   R   R   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_overlapping_name_logger2   s    c         C  s?   t  j d ƒ } |  j  } | j d ƒ Wd  QX| j d ƒ d  S(   Nt	   differents   test log msgR   (   s	   differents   WARNINGs   test log msg(   R   R   R   R   R   (   R   R   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_different_name_logger9   s    (   R   R   R   R    R!   R#   R%   (    (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR      s
   				t   LogCounterHandlerTestc           B  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  ss   t  j d ƒ |  _ |  j j t  j ƒ t |  j _ t d i d d 6ƒ |  _ t	 |  j ƒ |  _
 |  j j |  j
 ƒ d  S(   NR   t   settings_dictR   t	   LOG_LEVEL(   R   R   R   t   setLevelt   NOTSETt   Falset	   propagateR   t   crawlerR   R   t
   addHandler(   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR   C   s    c         C  s#   t  |  j _ |  j j |  j ƒ d  S(   N(   t   TrueR   R,   t   removeHandlerR   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   tearDownK   s    c         C  s   |  j  |  j j j d ƒ ƒ |  j  |  j j j d ƒ ƒ |  j  |  j j j d ƒ ƒ |  j  |  j j j d ƒ ƒ |  j  |  j j j d ƒ ƒ d  S(   Ns   log_count/DEBUGs   log_count/INFOs   log_count/WARNINGs   log_count/ERRORs   log_count/CRITICAL(   R   R-   t   statst	   get_value(   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt	   test_initO   s
    c         C  s3   |  j  j d ƒ |  j |  j j j d ƒ d ƒ d  S(   Ns   test log msgs   log_count/ERRORi   (   R   t   errort   assertEqualR-   R2   R3   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_accepted_levelV   s    c         C  s0   |  j  j d ƒ |  j |  j j j d ƒ ƒ d  S(   Ns   test log msgs   log_count/INFO(   R   t   debugR   R-   R2   R3   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_filtered_out_levelZ   s    (   R   R   R   R1   R4   R7   R9   (    (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR&   A   s
   				t   StreamLoggerTestc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  sD   t  j |  _ t j d ƒ } | j t j ƒ t | t j ƒ t  _ d  S(   NR   (   R
   t   stdoutR   R   R)   R   R   t   ERROR(   R   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR   a   s    c         C  s   |  j  t _  d  S(   N(   R;   R
   (   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR1   g   s    c         C  s-   t  ƒ   } t d ƒ Wd  QX| j d ƒ d  S(   Ns   test log msgR   R<   (   s   tests   ERRORs   test log msg(   R   t   printR   (   R   R   (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   test_redirectj   s    (   R   R   R   R1   R>   (    (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyR:   _   s   		(   t
   __future__R    R
   R   t   unittestt   testfixturesR   t   twisted.python.failureR   t   scrapy.utils.logR   R   R   R   t   scrapy.utils.testR   t   TestCaseR   R   R&   R:   (    (    (    s8   /home/travis/build/scrapy/scrapy/tests/test_utils_log.pyt   <module>   s   "#