σ
¨[c           @` s[  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z e j d    Z d	 e j f d
     YZ d e f d     YZ d e j f d     YZ d e j f d     YZ d S(   i    (   t   absolute_importt   divisiont   print_functionN(   t   utf8(   t   LogFormattert   define_logging_optionst   enable_pretty_logging(   t   OptionParser(   t   unittest(   t   basestring_typec           c` s/   t  j    t  j d d t d  VWd  QXd  S(   Nt   ignoret   category(   t   warningst   catch_warningst   simplefiltert   BytesWarning(    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   ignore_bytes_warning"   s    t   LogFormatterTestc           B` s_   e  Z e j d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z RS(	   sD   (?s)\[E [0-9]{6} [0-9]{2}:[0-9]{2}:[0-9]{2} log_test:[0-9]+\] (.*)c         C` s»   t  d t  |  _ i d t j 6|  j _ d |  j _ t j d  |  _ t |  j _	 t
 j   |  _ t j j |  j d  |  _ |  j |  j  |  _ |  j j |  j  |  j j |  j  d  S(   Nt   coloru   u   R   s   log.out(   R   t   Falset	   formattert   loggingt   ERRORt   _colorst   _normalt   Loggert   loggert	   propagatet   tempfilet   mkdtempt   tempdirt   ost   patht   joint   filenamet   make_handlert   handlert   setFormattert
   addHandler(   t   self(    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   setUp/   s    c         C` s1   |  j  j   t j |  j  t j |  j  d  S(   N(   R$   t   closeR   t   unlinkR"   t   rmdirR   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   tearDownB   s    c         C` s   t  j |  S(   N(   R   t   FileHandler(   R'   R"   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyR#   G   s    c         C` sf   t  |  j d  N } | j   j   } t j j |  } | rL | j d  St d |   Wd  QXd  S(   Nt   rbi   s   output didn't match regex: %r(	   t   openR"   t   readt   stripR   t   LINE_REt   matcht   groupt	   Exception(   R'   t   ft   linet   m(    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt
   get_outputN   s    c         C` s*   |  j  j d  |  j |  j   d  d  S(   Nt   foo(   R   t   errort   assertEqualR9   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_basic_loggingW   s    c      	   C` sF   t    7 |  j j d  |  j |  j   t t d    Wd  QXd  S(   Ns   ι(   R   R   R;   R<   R9   R   t   repr(   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_bytes_logging[   s    
c         C` s   t     |  j j d j d   Wd  QXt t t  rW |  j |  j   t	 d   n( |  j |  j   t	 t
 t	 d     d  S(   Nu   Γ©R   (   R   R   R;   t   encodet
   issubclasst   bytesR	   R<   R9   R   R>   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_utf8_logginga   s
    
c         C` sd   y t  d   Wn! t  k
 r3 |  j j d  n X|  j   } |  j | d  |  j d |  d  S(   Ns   ιs   caught exceptions   Exception.*\\xe9s   \n(   R5   R   t	   exceptionR9   t   assertRegexpMatchest   assertNotIn(   R'   t   output(    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_bytes_exception_loggingn   s    (   t   __name__t
   __module__t   ret   compileR2   R(   R,   R#   R9   R=   R?   RC   RH   (    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyR   )   s   									t   UnicodeLogFormatterTestc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  j | d d S(   Nt   encodingR   (   R   R-   (   R'   R"   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyR#   |   s    c         C` s0   |  j  j d  |  j |  j   t d   d  S(   Nu   Γ©(   R   R;   R<   R9   R   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_unicode_logging   s    (   RI   RJ   R#   RO   (    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyRM   {   s   	t   EnablePrettyLoggingTestc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` sN   t  t |   j   t   |  _ t |  j  t j d  |  _ t	 |  j _
 d  S(   Ns-   tornado.test.log_test.EnablePrettyLoggingTest(   t   superRP   R(   R   t   optionsR   R   R   R   R   R   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyR(      s
    c         C` s<  t  j   } zΕ | d |  j _ t d |  j d |  j  |  j d t |  j j   |  j j	 d  |  j j d j
   t j | d  } |  j d t |   t | d   } |  j | j   d  Wd  QXWd  x( |  j j D] } | j
   | j   qα Wx( t j | d  D] } t j |  qWt j |  Xd  S(	   Ns	   /test_logRR   R   i   t   helloi    s
   /test_log*s   ^\[E [^]]*\] hello$(   R   R   RR   t   log_file_prefixR   R   R<   t   lent   handlersR;   t   flusht   globR/   RE   R0   R)   R   R*   R+   (   R'   t   tmpdirt	   filenamesR6   R$   R"   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_log_file   s"     
c         C` s,  t  j   } z΅ | d |  j _ d |  j _ t d |  j d |  j  |  j j d  |  j j d j	   t
 j
 | d  } |  j d t |   t | d   } |  j | j   d	  Wd  QXWd  x( |  j j D] } | j	   | j   qΡ Wx( t
 j
 | d  D] } t j |  qWt j |  Xd  S(
   Ns	   /test_logt   timeRR   R   RS   i    s
   /test_log*i   s   ^\[E [^]]*\] hello$(   R   R   RR   RT   t   log_rotate_modeR   R   R;   RV   RW   RX   R<   RU   R/   RE   R0   R)   R   R*   R+   (   R'   RY   RZ   R6   R$   R"   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt!   test_log_file_with_timed_rotating£   s&    	
c         C` sq   z> d |  j  _ d |  j  _ |  j t t d |  j  d |  j Wd  x( |  j j D] } | j   | j	   qN WXd  S(   Nt	   some_patht
   wrong_modeRR   R   (
   RR   RT   R]   t   assertRaisest
   ValueErrorR   R   RV   RW   R)   (   R'   R$   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_wrong_rotate_mode_valueΉ   s    
(   RI   RJ   R(   R[   R^   Rc   (    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyRP      s   			t   LoggingOptionTestc           B` sY   e  Z d  Z d	 d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(
   s?   Test the ability to enable and disable Tornado's logging hooks.c   	      C` s   d } d } d j  | | | g  } t j t j d | g | pB g  d t j d t j } | j   \ } } |  j | j	 d d |  d	 | k S(
   Ns7   from tornado.options import options, parse_command_lines%   import logging; logging.info("hello")t   ;s   -ct   stdoutt   stderri    s   process failed: %rRS   (
   R!   t
   subprocesst   Popent   syst
   executablet   PIPEt   STDOUTt   communicateR<   t
   returncode(	   R'   t	   statementt   argst   IMPORTt   LOG_INFOt   programt   procRf   Rg   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   logs_presentΗ   s    c         C` s   |  j  |  j d   d  S(   Nt   pass(   t   assertFalseRv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_defaultΧ   s    c         C` s   |  j  |  j d   d  S(   Ns   parse_command_line()(   t
   assertTrueRv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_tornado_defaultΪ   s    c         C` s    |  j  |  j d d g   d  S(   Ns   parse_command_line()s   --logging=none(   Rx   Rv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_disable_command_lineέ   s    c         C` s    |  j  |  j d d g   d  S(   Ns   parse_command_line()s   --logging=None(   Rx   Rv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt*   test_disable_command_line_case_insensitiveα   s    c         C` s   |  j  |  j d   d  S(   Ns.   options.logging = "none"; parse_command_line()(   Rx   Rv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_disable_code_stringε   s    c         C` s   |  j  |  j d   d  S(   Ns,   options.logging = None; parse_command_line()(   Rx   Rv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_disable_code_noneι   s    c         C` s    |  j  |  j d d g   d  S(   Ns,   options.logging = None; parse_command_line()s   --logging=info(   Rz   Rv   (   R'   (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   test_disable_overrideν   s    N(   RI   RJ   t   __doc__t   NoneRv   Ry   R{   R|   R}   R~   R   R   (    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyRd   Ε   s   						(    t
   __future__R    R   R   t
   contextlibRX   R   R   RK   Rh   Rj   R   R   t   tornado.escapeR   t   tornado.logR   R   R   t   tornado.optionsR   t   tornado.test.utilR   t   tornado.utilR	   t   contextmanagerR   t   TestCaseR   RM   RP   Rd   (    (    (    s4   lib/python2.7/site-packages/tornado/test/log_test.pyt   <module>   s&   R>