ó
ç'ÊUc           @   sÎ   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l	 m
 Z
 d  d l m Z m Z d e j f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d S(   iÿÿÿÿ(   t
   LogCapture(   t   unittest(   t   Failure(   t   defert   reactor(   t
   dispatcher(   t   send_catch_logt   send_catch_log_deferredt   SendCatchLogTestc           B   s5   e  Z e j d  „  ƒ Z d „  Z d „  Z d „  Z RS(   c         c   sq  t  ƒ  } t ƒ  } t j |  j d | ƒt j |  j d | ƒt ƒ  ) } t j |  j	 | d d d | ƒV} Wd  QX|  j | k s‡ t
 ‚ |  j | k sœ t
 ‚ |  j t | j ƒ d ƒ | j d } |  j d | j ƒ  ƒ |  j | j d ƒ |  j | d d |  j ƒ |  j t | d d t ƒ ƒ |  j | d |  j d	 f ƒ t j |  j d | ƒt j |  j d | ƒd  S(
   Nt   signalt   argt   testt   handlers_calledi   i    t   error_handlert   ERRORt   OK(   t   objectt   setR   t   connectR   t
   ok_handlerR    R   t   maybeDeferredt   _get_resultt   AssertionErrort   assertEqualt   lent   recordst   assertInt
   getMessaget	   levelnamet   assert_t
   isinstanceR   t
   disconnect(   t   selft   test_signalR   t   lt   resultt   record(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyt   test_send_catch_log   s&    		c         O   s   t  | | | Ž S(   N(   R   (   R    R	   t   at   kw(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   &   s    c         C   s   | j  |  j ƒ d d } d  S(   Ni   i    (   t   addR   (   R    R
   R   R&   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   )   s    c         C   s&   | j  |  j ƒ | d k s" t ‚ d S(   NR   R   (   R(   R   R   (   R    R
   R   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   -   s    (   t   __name__t
   __module__R   t   inlineCallbacksR%   R   R   R   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   
   s   		t   SendCatchLogDeferredTestc           B   s   e  Z d  „  Z RS(   c         O   s   t  | | | Ž S(   N(   R   (   R    R	   R&   R'   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   5   s    (   R)   R*   R   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR,   3   s   t   SendCatchLogDeferredTest2c           B   s   e  Z d  „  Z d „  Z RS(   c         C   sH   | j  |  j ƒ | d k s" t ‚ t j ƒ  } t j d | j d ƒ | S(   NR   i    R   (   R(   R   R   R   t   DeferredR   t	   callLatert   callback(   R    R
   R   t   d(    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   ;   s
    c         O   s   t  | | | Ž S(   N(   R   (   R    R	   R&   R'   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR   B   s    (   R)   R*   R   R   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR-   9   s   	t   SendCatchLogTest2c           B   s   e  Z d  „  Z RS(   c         C   s   t  ƒ  } d „  } t j | | ƒ t ƒ   } t | ƒ Wd  QX|  j t | j ƒ d ƒ |  j d t	 | ƒ ƒ t j
 | | ƒ d  S(   Nc           S   s
   t  j ƒ  S(   N(   R   R.   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyt   <lambda>I   s    i   s+   Cannot return deferreds from signal handler(   R   R   R   R    R   R   R   R   R   t   strR   (   R    R!   t   test_handlerR"   (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyt+   test_error_logged_if_deferred_not_supportedG   s    		(   R)   R*   R6   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyR2   E   s   N(   t   testfixturesR    t   twisted.trialR   t   twisted.python.failureR   t   twisted.internetR   R   t   scrapy.xlib.pydispatchR   t   scrapy.utils.signalR   R   t   TestCaseR   R,   R-   R2   (    (    (    s;   /home/travis/build/scrapy/scrapy/tests/test_utils_signal.pyt   <module>   s   )