;
Μβ"Ic               @   s  d  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
 Z
 d d l Z d d l m Z m Z d d l Z d d l Z d d l Z d d l Z 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 Gd   d e j  Z Gd   d e  Z Gd	   d
 e  Z  d Z! d Z" d Z# d Z$ d Z% d Z& d Z' d Z( d Z) d Z* e+ e* e! d  Z, i
 d e! 6d e" 6d e# 6d e$ 6d e% 6d e& 6d e' 6d e( 6d e) 6d e* 6Z- Gd    d! e j.  Z/ Gd"   d# e j.  Z0 Gd$   d% e  Z1 Gd&   d' e  Z2 Gd(   d) e j3  Z4 Gd*   d+ e  Z5 Gd,   d- e  Z6 Gd.   d/ e  Z7 Gd0   d1 e  Z8 Gd2   d3 e  Z9 Gd4   d5 e  Z: e d6 d7  d8    Z; e< d9 k o e;   n d S(:   uo   Test harness for the logging module. Run all tests.

Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved.
i    N(   u   ThreadingTCPServeru   StreamRequestHandler(   u   captured_stdoutu   run_with_localeu   run_unittestc             B   sM   |  Ee  Z d  Z d Z d Z d Z d   Z d   Z d d  Z	 d   Z
 d S(	   u   Base class for logging tests.u&   %(name)s -> %(levelname)s: %(message)su   ^([\w.]+) -> ([\w]+): ([\d]+)$i    c          	   C   s  t  j   j j } t  j   zM t  j j   |  _ t  j d d  |  _	 | j   |  _
 t  j j   |  _ Wd t  j   Xt  j d  |  _ |  j j   |  _ t j   |  _ |  j j t  j  t  j |  j  |  _ t  j |  j  |  _ |  j j |  j  |  j j |  j  d S(   ux   Setup the default logging stream to an internal StringIO instance,
        so that we can examine log output as we want.Nu    (   u   loggingu	   getLoggeru   manageru
   loggerDictu   _acquireLocku	   _handlersu   copyu   saved_handlersu   _handlerListu   saved_handler_listu   saved_loggersu   _levelNamesu   saved_level_namesu   _releaseLocku   root_loggeru   getEffectiveLevelu   original_logging_levelu   iou   StringIOu   streamu   setLevelu   DEBUGu   StreamHandleru	   root_hdlru	   Formatteru
   log_formatu   root_formatteru   setFormatteru
   addHandler(   u   selfu   logger_dict(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   setUp:   s     
c          
   C   sΥ   |  j  j   |  j j |  j  |  j j |  j  t j   z t j	 j
   t j	 j |  j  t j j
   t j j |  j  |  j t j d d  <t j   j j } | j
   | j |  j  Wd t j   Xd S(   uJ   Remove our logging stream, and restore the original logging
        level.N(   u   streamu   closeu   root_loggeru   removeHandleru	   root_hdlru   setLevelu   original_logging_levelu   loggingu   _acquireLocku   _levelNamesu   clearu   updateu   saved_level_namesu	   _handlersu   saved_handlersu   saved_handler_listu   _handlerListu	   getLoggeru   manageru
   loggerDictu   saved_loggersu   _releaseLock(   u   selfu
   loggerDict(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   tearDownQ   s    

c       	      C   s  | p |  j  } t j |  j  } y | j   | j   } Wn& t k
 o | j   j   } Yn X|  j	 t
 |  t
 |   xd t | |  D]S \ } } | j |  } | p |  j d |  n |  j	 t | j    |  q W| j   } | o |  j d |  n d S(   u±   Match the collected log lines against the regular expression
        self.expected_log_pat, and compare the extracted group values to
        the expected_values list of tuples.u*   Log line does not match expected pattern:
u'   Remaining output at end of log stream:
N(   u   streamu   reu   compileu   expected_log_patu   resetu	   readlinesu   AttributeErroru   getvalueu
   splitlinesu   assertEqualsu   lenu   zipu   searchu   failu   tupleu   groupsu   read(	   u   selfu   expected_valuesu   streamu   patu   actual_linesu   actualu   expectedu   matchu   s(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   assert_log_linesd   s$    
 	 c             C   s   |  j  d 7_  d |  j  S(   uM   Generate a message consisting solely of an auto-incrementing
        integer.i   u   %d(   u   message_num(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   next_message{   s    N(   u   __name__u
   __module__u   __doc__u
   log_formatu   expected_log_patu   message_numu   setUpu   tearDownu   Noneu   assert_log_linesu   next_message(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   BaseTest2   s   
		u   BaseTestc             B   s8   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d S(   u*   Test builtin levels and their inheritance.c             C   s  |  j  } t j d  } | j t j  t j d  } | j t j  t j d  } | j t j  | j t j |    | j	 |    | j t j |    | j	 |    | j
 |    | j |    | j t j |    | j	 |    | j
 |    | j |    | j |    | j
 |    | j |    | j |    | j |    |  j d d d d d d d d d d d g  d  S(   Nu   ERRu   INFu   DEBu   CRITICALu   1u   ERRORu   2u   3u   4u   WARNINGu   5u   INFOu   6u   7u   8u   9u   10u   DEBUGu   11(   u   ERRu   CRITICALu   1(   u   ERRu   ERRORu   2(   u   INFu   CRITICALu   3(   u   INFu   ERRORu   4(   u   INFu   WARNINGu   5(   u   INFu   INFOu   6(   u   DEBu   CRITICALu   7(   u   DEBu   ERRORu   8(   u   DEBu   WARNINGu   9(   u   DEBu   INFOu   10(   u   DEBu   DEBUGu   11(   u   next_messageu   loggingu	   getLoggeru   setLevelu   ERRORu   INFOu   DEBUGu   logu   CRITICALu   erroru   warnu   infou   debugu   assert_log_lines(   u   selfu   mu   ERRu   INFu   DEB(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu	   test_flat   sD    	c             C   s΄   |  j  } t j d  } | j t j  t j d  } | j t j  | j t j |    | j |    | j	 |    | j
 |    | j |    |  j d d g  d  S(	   Nu   INFu   INF.ERRu   CRITICALu   1u   ERRORu   2(   u   INF.ERRu   CRITICALu   1(   u   INF.ERRu   ERRORu   2(   u   next_messageu   loggingu	   getLoggeru   setLevelu   INFOu   ERRORu   logu   CRITICALu   erroru   warnu   infou   debugu   assert_log_lines(   u   selfu   mu   INFu   INF_ERR(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_nested_explicit΄   s    	c          	   C   sC  |  j  } t j d  } | j t j  t j d  } | j t j  t j d  } t j d  } t j d  } | j t j |    | j |    | j	 |    | j
 |    | j t j |    | j |    | j |    | j	 |    | j
 |    | j |    |  j d d d d d d g  d  S(   Nu   INFu   INF.ERRu	   INF.UNDEFu   INF.ERR.UNDEFu   UNDEFu   CRITICALu   1u   ERRORu   2u   WARNINGu   3u   INFOu   4u   5u   6(   u	   INF.UNDEFu   CRITICALu   1(   u	   INF.UNDEFu   ERRORu   2(   u	   INF.UNDEFu   WARNINGu   3(   u	   INF.UNDEFu   INFOu   4(   u   INF.ERR.UNDEFu   CRITICALu   5(   u   INF.ERR.UNDEFu   ERRORu   6(   u   next_messageu   loggingu	   getLoggeru   setLevelu   INFOu   ERRORu   logu   CRITICALu   erroru   warnu   infou   debugu   assert_log_lines(   u   selfu   mu   INFu   INF_ERRu	   INF_UNDEFu   INF_ERR_UNDEFu   UNDEF(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_nested_inheritedΛ   s2    	c             C   sΟ   |  j  } t j d  } t j d  } t j d  } | j t j  | j t j |    | j |    | j t j |    | j |    | j |    | j |    |  j	 d
 d d d g  d  S(   Nu   INFu   INF.BADPARENT.UNDEFu   INF.BADPARENTu   CRITICALu   1u   INFOu   2u   3u   4(   u   INF.BADPARENT.UNDEFu   CRITICALu   1(   u   INF.BADPARENT.UNDEFu   INFOu   2(   u   INF.BADPARENTu   CRITICALu   3(   u   INF.BADPARENTu   INFOu   4(
   u   next_messageu   loggingu	   getLoggeru   setLevelu   INFOu   logu   FATALu   infou   debugu   assert_log_lines(   u   selfu   mu   INFu
   GRANDCHILDu   CHILD(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_nested_with_virtual_parentξ   s     	N(   u   __name__u
   __module__u   __doc__u	   test_flatu   test_nested_explicitu   test_nested_inheritedu   test_nested_with_virtual_parent(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   BuiltinLevelsTest   s
   
	/		#u   BuiltinLevelsTestc             B   s   |  Ee  Z d  Z d   Z d S(   u   Test the bundled Filter class.c             C   sΰ   t  j d  } |  j j d } z¬ | j |  t  j d  } t  j d  } t  j d  } t  j d  } | j |  j    | j |  j    | j |  j    | j |  j    |  j d	 d
 g  Wd  | j	 |  Xd  S(   Nu	   spam.eggsi    u   spamu   spam.eggs.fishu   spam.bakedbeansu   INFOu   2u   3(   u	   spam.eggsu   INFOu   2(   u   spam.eggs.fishu   INFOu   3(
   u   loggingu   Filteru   root_loggeru   handlersu	   addFilteru	   getLoggeru   infou   next_messageu   assert_log_linesu   removeFilter(   u   selfu   filter_u   handleru   spamu	   spam_eggsu   spam_eggs_fishu   spam_bakedbeans(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_filter  s     N(   u   __name__u
   __module__u   __doc__u   test_filter(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   BasicFilterTest	  s   
u   BasicFilterTestix   iw   iv   iu   it   is   ir   iq   ip   io   i   u   Silentu   Taciturnu   Terseu   Effusiveu   Sociableu   Verboseu	   Talkativeu	   Garrulousu
   Chatterboxu   Boringc             B   s   |  Ee  Z d  Z d   Z d S(   u)   A filter which blocks garrulous messages.c             C   s   | j  t k S(   N(   u   levelnou	   GARRULOUS(   u   selfu   record(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   filterP  s    N(   u   __name__u
   __module__u   __doc__u   filter(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   GarrulousFilterL  s   
u   GarrulousFilterc             B   s   |  Ee  Z d  Z d   Z d S(   u5   A filter which blocks sociable and taciturn messages.c             C   s   | j  t t g k S(   N(   u   levelnou   SOCIABLEu   TACITURN(   u   selfu   record(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   filterW  s    N(   u   __name__u
   __module__u   __doc__u   filter(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   VerySpecificFilterS  s   
u   VerySpecificFilterc             B   sG   |  Ee  Z d  Z d Z d   Z d   Z d   Z d   Z d   Z d S(   u@   Test various filtering possibilities with custom logging levels.u   ^[\w.]+ -> ([\w]+): ([\d]+)$c             C   sD   t  j |   x0 t t j    D] \ } } t j | |  q  Wd  S(   N(   u   BaseTestu   setUpu   listu   my_logging_levelsu   itemsu   loggingu   addLevelName(   u   selfu   ku   v(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   setUpb  s     c             C   s+   x$ t  D] } | j | |  j    q Wd  S(   N(   u   LEVEL_RANGEu   logu   next_message(   u   selfu   loggeru   lvl(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   log_at_all_levelsg  s     c             C   sC   |  j  j t  |  j |  j   |  j d d d d d d g  d  S(   Nu   Verboseu   5u   Sociableu   6u   Effusiveu   7u   Terseu   8u   Taciturnu   9u   Silentu   10(   u   Verboseu   5(   u   Sociableu   6(   u   Effusiveu   7(   u   Terseu   8(   u   Taciturnu   9(   u   Silentu   10(   u   root_loggeru   setLevelu   VERBOSEu   log_at_all_levelsu   assert_log_lines(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_logger_filterk  s    c             C   si   |  j  j d j t  z0 |  j |  j   |  j d d d d d g  Wd  |  j  j d j t j  Xd  S(   Ni    u   Sociableu   6u   Effusiveu   7u   Terseu   8u   Taciturnu   9u   Silentu   10(   u   Sociableu   6(   u   Effusiveu   7(   u   Terseu   8(   u   Taciturnu   9(   u   Silentu   10(   u   root_loggeru   handlersu   setLevelu   SOCIABLEu   log_at_all_levelsu   assert_log_linesu   loggingu   NOTSET(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_handler_filtery  s    c             C   sν   |  j  j d } d  } t   } | j |  z |  j |  j   d d d d d d  d! d" d# g	 } |  j |  t   } |  j  j |  |  j |  j   |  j | d$ d% d& d' d( d) d* g  Wd  | o |  j  j |  n | j |  Xd  S(+   Ni    u   Boringu   1u
   Chatterboxu   2u	   Talkativeu   4u   Verboseu   5u   Sociableu   6u   Effusiveu   7u   Terseu   8u   Taciturnu   9u   Silentu   10u   11u   12u   14u   15u   17u   18u   20(   u   Boringu   1(   u
   Chatterboxu   2(   u	   Talkativeu   4(   u   Verboseu   5(   u   Sociableu   6(   u   Effusiveu   7(   u   Terseu   8(   u   Taciturnu   9(   u   Silentu   10(   u   Boringu   11(   u
   Chatterboxu   12(   u	   Talkativeu   14(   u   Verboseu   15(   u   Effusiveu   17(   u   Terseu   18(   u   Silentu   20(	   u   root_loggeru   handlersu   Noneu   GarrulousFilteru	   addFilteru   log_at_all_levelsu   assert_log_linesu   VerySpecificFilteru   removeFilter(   u   selfu   handleru   specific_filteru   garru   first_lines(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_specific_filters  s<    				N(	   u   __name__u
   __module__u   __doc__u   expected_log_patu   setUpu   log_at_all_levelsu   test_logger_filteru   test_handler_filteru   test_specific_filters(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   CustomLevelsAndFiltersTest[  s   
				u   CustomLevelsAndFiltersTestc             B   s5   |  Ee  Z d  Z d Z d   Z d   Z d   Z d S(   u   Tests for the MemoryHandler.u   ^[\w.]+ -> ([\w]+): ([\d]+)$c             C   sc   t  j |   t j j d t j |  j  |  _ t j d  |  _	 d |  j	 _
 |  j	 j |  j  d  S(   Ni
   u   memi    (   u   BaseTestu   setUpu   loggingu   handlersu   MemoryHandleru   WARNINGu	   root_hdlru   mem_hdlru	   getLoggeru
   mem_loggeru	   propagateu
   addHandler(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   setUp»  s    c             C   s   |  j  j   t j |   d  S(   N(   u   mem_hdlru   closeu   BaseTestu   tearDown(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   tearDownΓ  s    c          	   C   s.  |  j  j |  j    |  j g   |  j  j |  j    |  j g   |  j  j |  j    d d d g } |  j |  x d D] } x* t d	  D] } |  j  j |  j    q W|  j |  |  j  j |  j    | d
   t | | d  D } |  j |  q W|  j  j |  j    |  j |  d  S(   Nu   DEBUGu   1u   INFOu   2u   WARNINGu   3i   i   i	   c             S   s'   g  } |  ] } | d  t  |  f q
 S(   u   DEBUG(   u   str(   u   .0u   _[1]u   i(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu
   <listcomp>έ  s    i
   (   u   DEBUGu   1(   u   INFOu   2(   u   WARNINGu   3(   i   i   (   u
   mem_loggeru   debugu   next_messageu   assert_log_linesu   infou   warnu   range(   u   selfu   linesu   nu   i(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu
   test_flushΗ  s(    	  !N(   u   __name__u
   __module__u   __doc__u   expected_log_patu   setUpu   tearDownu
   test_flush(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   MemoryHandlerTest΄  s
   
		u   MemoryHandlerTestc             B   s   |  Ee  Z d  Z d   Z d S(   u   A special exception formatter.c             C   s   d | d j  S(   Nu
   Got a [%s]i    (   u   __name__(   u   selfu   ei(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   formatExceptionζ  s    N(   u   __name__u
   __module__u   __doc__u   formatException(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   ExceptionFormatterδ  s   
u   ExceptionFormatterc             B   s»   |  Ee  Z d  Z d Z d Z d Z e j d d  Z e j d d  Z d e  d	 Z	 e j d
 d  Z
 d Z d   Z d   Z e d  Z d   Z d   Z d   Z d   Z d   Z d S(   u5   Reading logging config from a .ini-style config file.u   ^([\w]+) \+\+ ([\w]+)$uN  
    [loggers]
    keys=root

    [handlers]
    keys=hand1

    [formatters]
    keys=form1

    [logger_root]
    level=WARNING
    handlers=hand1

    [handler_hand1]
    class=StreamHandler
    level=NOTSET
    formatter=form1
    args=(sys.stdout,)

    [formatter_form1]
    format=%(levelname)s ++ %(message)s
    datefmt=
    u΅  
    [loggers]
    keys=root,parser

    [handlers]
    keys=hand1

    [formatters]
    keys=form1

    [logger_root]
    level=WARNING
    handlers=

    [logger_parser]
    level=DEBUG
    handlers=hand1
    propagate=1
    qualname=compiler.parser

    [handler_hand1]
    class=StreamHandler
    level=NOTSET
    formatter=form1
    args=(sys.stdout,)

    [formatter_form1]
    format=%(levelname)s ++ %(message)s
    datefmt=
    u
   sys.stdoutu
   sys.stboutu   formatter=form1u   formatter=misspelled_nameu  
    [loggers]
    keys=root

    [handlers]
    keys=hand1

    [formatters]
    keys=form1

    [logger_root]
    level=NOTSET
    handlers=hand1

    [handler_hand1]
    class=StreamHandler
    level=NOTSET
    formatter=form1
    args=(sys.stdout,)

    [formatter_form1]
    class=uS   .ExceptionFormatter
    format=%(levelname)s:%(name)s:%(message)s
    datefmt=
    u   class=StreamHandleru   class=logging.StreamHandlerug  
    [loggers]
    keys=root,parser

    [handlers]
    keys=hand1, hand2

    [formatters]
    keys=form1, form2

    [logger_root]
    level=WARNING
    handlers=

    [logger_parser]
    level=DEBUG
    handlers=hand1
    propagate=1
    qualname=compiler.parser

    [handler_hand1]
    class=StreamHandler
    level=NOTSET
    formatter=form1
    args=(sys.stdout,)

    [handler_hand2]
    class=StreamHandler
    level=NOTSET
    formatter=form1
    args=(sys.stderr,)

    [formatter_form1]
    format=%(levelname)s ++ %(message)s
    datefmt=

    [formatter_form2]
    format=%(message)s
    datefmt=
    c          	   C   sg   zR t  j d  } t | d  } | j t j |   | j   t j j	 |  Wd  t
 j |  Xd  S(   Nu   .iniu   w(   u   tempfileu   mktempu   openu   writeu   textwrapu   dedentu   closeu   loggingu   configu
   fileConfigu   osu   remove(   u   selfu   confu   fnu   f(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   apply_configx  s    
c          
   C   s   t    j } j   } zr | ~ } |  j |  j  t j   } | j |  j    | j	 |  j    |  j
 d g d | |  j
 g   Wd  | ~ QXd  S(   Nu   ERRORu   2u   stream(   u   ERRORu   2(   u   captured_stdoutu   __exit__u	   __enter__u   apply_configu   config0u   loggingu	   getLoggeru   infou   next_messageu   erroru   assert_log_lines(   u   selfu   _[2]u   _[1]u   outputu   logger(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config0_ok  s    "	c          
   C   s   t    j } j   } zu | ~ } |  j |  t j d  } | j |  j    | j |  j    |  j	 d d g d | |  j	 g   Wd  | ~ QXd  S(	   Nu   compiler.parseru   INFOu   1u   ERRORu   2u   stream(   u   INFOu   1(   u   ERRORu   2(
   u   captured_stdoutu   __exit__u	   __enter__u   apply_configu   loggingu	   getLoggeru   infou   next_messageu   erroru   assert_log_lines(   u   selfu   configu   _[2]u   _[1]u   outputu   logger(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config1_ok  s    "	c             C   s   |  j  t |  j |  j  d  S(   N(   u   assertRaisesu	   Exceptionu   apply_configu   config2(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config2_failure   s    c             C   s   |  j  t |  j |  j  d  S(   N(   u   assertRaisesu	   Exceptionu   apply_configu   config3(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config3_failure€  s    c             C   s²   t    j } j   } z | ~ } |  j |  j  t j   } y t    Wn! t k
 o t j d  Yn Xt	 j
 j d  |  j | j   d  |  j g   Wd  | ~ QXd  S(   Nu   just testingi    u-   ERROR:root:just testing
Got a [RuntimeError]
(   u   captured_stdoutu   __exit__u	   __enter__u   apply_configu   config4u   loggingu	   getLoggeru   RuntimeErroru	   exceptionu   sysu   stdoutu   seeku   assertEqualsu   getvalueu   assert_log_lines(   u   selfu   _[2]u   _[1]u   outputu   logger(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config4_ok¨  s    "c             C   s   |  j  d |  j  d  S(   Nu   config(   u   test_config1_oku   config5(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config5_ok·  s    c             C   s   |  j  d |  j  d  S(   Nu   config(   u   test_config1_oku   config6(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_config6_okΊ  s    N(   u   __name__u
   __module__u   __doc__u   expected_log_patu   config0u   config1u   replaceu   config2u   config3u   config4u   config5u   config6u   apply_configu   test_config0_oku   test_config1_oku   test_config2_failureu   test_config3_failureu   test_config4_oku   test_config5_oku   test_config6_ok(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   ConfigFileTestκ  s$   
 *	
					u   ConfigFileTestc             B   s5   |  Ee  Z d  Z d Z d   Z d   Z d   Z d S(   uq   Handler for a streaming logging request. It saves the log message in the
    TCP server's 'log_output' attribute.u	   !!!END!!!c             C   sΒ   x» |  j  j d  } t |  d k  o Pn t j d |  d } |  j  j |  } x8 t |  | k  o$ | |  j  j | t |   } qX W|  j |  } t j |  } |  j |  q d S(   uΐ   Handle multiple requests - each expected to be of 4-byte length,
        followed by the LogRecord in pickle format. Logs the record
        according to whatever policy is configured locally.i   u   >Li    N(	   u
   connectionu   recvu   lenu   structu   unpacku   unpickleu   loggingu   makeLogRecordu   handle_log_record(   u   selfu   chunku   slenu   obju   record(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   handleΔ  s     %c             C   s   t  j |  S(   N(   u   pickleu   loads(   u   selfu   data(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   unpickleΤ  s    c             C   sA   |  j  | j k o d |  j _ d  S|  j j | j d 7_ d  S(   Ni   u   
(   u   TCP_LOG_ENDu   msgu   serveru   abortu
   log_output(   u   selfu   record(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   handle_log_recordΧ  s    N(   u   __name__u
   __module__u   __doc__u   TCP_LOG_ENDu   handleu   unpickleu   handle_log_record(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   LogRecordStreamHandler½  s
   
		u   LogRecordStreamHandlerc             B   sA   |  Ee  Z d  Z d Z d Z d e j j e d  Z	 d   Z
 d S(   uQ   A simple-minded TCP socket-based logging receiver suitable for test
    purposes.i   u    u	   localhostc             C   s>   t  j |  | | f |  d |  _ d |  _ t j   |  _ d  S(   NgΉ?F(   u   ThreadingTCPServeru   __init__u   Falseu   abortu   timeoutu	   threadingu   Eventu   finished(   u   selfu   hostu   portu   handler(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   __init__θ  s    		c             C   sr   xT |  j  pI t j |  j j   g g  g  |  j  \ } } } | o |  j   q q W|  j j   |  j   d  S(   N(	   u   abortu   selectu   socketu   filenou   timeoutu   handle_requestu   finishedu   setu   server_close(   u   selfu   rdu   wru   ex(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   serve_until_stoppedπ  s     
N(   u   __name__u
   __module__u   __doc__u   allow_reuse_addressu
   log_outputu   loggingu   handlersu   DEFAULT_TCP_LOGGING_PORTu   LogRecordStreamHandleru   __init__u   serve_until_stopped(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   LogRecordSocketReceiverΰ  s   
	u   LogRecordSocketReceiverc             B   s8   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d S(   u   Test for SocketHandler objects.c             C   sΣ   t  j |   t d d  |  _ |  j j j   d |  _ t j d |  j j	  g |  _
 x |  j
 D] } | j   q` Wt j j d |  j  |  _ |  j j |  j  |  j j |  j j d  |  j j |  j  d S(   ut   Set up a TCP server to receive log messages, and a SocketHandler
        pointing to that server's address and port.u   porti    i   u   targetu	   localhostN(   u   BaseTestu   setUpu   LogRecordSocketReceiveru	   tcpserveru   socketu   getsocknameu   portu	   threadingu   Threadu   serve_until_stoppedu   threadsu   startu   loggingu   handlersu   SocketHandleru	   sock_hdlru   setFormatteru   root_formatteru   root_loggeru   removeHandleru
   addHandler(   u   selfu   thread(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   setUp   s    
 c             C   sl   zW d |  j _ |  ` |  j j |  j  |  j j   x |  j D] } | j d  q? WWd t	 j
 |   Xd S(   u   Shutdown the TCP server.g       @NT(   u   Trueu	   tcpserveru   abortu   root_loggeru   removeHandleru	   sock_hdlru   closeu   threadsu   joinu   BaseTestu   tearDown(   u   selfu   thread(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   tearDown  s    
 c             C   s0   |  j  j t j  |  j j j d  |  j j S(   u1   Get the log output as received by the TCP server.g       @(   u   root_loggeru   criticalu   LogRecordStreamHandleru   TCP_LOG_ENDu	   tcpserveru   finishedu   waitu
   log_output(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu
   get_output  s    c             C   sC   t  j d  } | j d  | j d  |  j |  j   d  d  S(   Nu   tcpu   spamu   eggsu
   spam
eggs
(   u   loggingu	   getLoggeru   erroru   debugu   assertEqualsu
   get_output(   u   selfu   logger(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_output#  s    N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu
   get_outputu   test_output(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   SocketHandlerTestό  s
   
			u   SocketHandlerTestc             B   s8   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d S(   u*   Test memory persistence of logger objects.c             C   s   t  j |   i  |  _ d S(   u8   Create a dict to remember potentially destroyed objects.N(   u   BaseTestu   setUpu
   _survivors(   u   self(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   setUp/  s    c             G   sC   x< | D]4 } t  |  t |  f } t j |  |  j | <q Wd S(   uK   Watch the given objects for survival, by creating weakrefs to
        them.N(   u   idu   repru   weakrefu   refu
   _survivors(   u   selfu   argsu   obju   key(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   _watch_for_survival4  s     c             C   s   t  j   g  } xJ t |  j j    D]3 \ \ } } } |   d k o | j |  q& q& W| o* |  j d t |  d j	 |  f  n d S(   u;   Assert that all objects watched for survival have survived.u;   %d objects should have survived but have been destroyed: %su   , N(
   u   gcu   collectu   listu
   _survivorsu   itemsu   Noneu   appendu   failu   lenu   join(   u   selfu   deadu   id_u   repr_u   ref(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   _assert_survival;  s    
 	c             C   sΎ   |  j  j t j  t j d  } |  j |  | j t j  |  j  j |  j    | j |  j    |  j	 d g  ~ |  j
   t j d  } | j |  j    |  j	 d d g  d  S(   Nu   foou   DEBUGu   2u   3(   u   foou   DEBUGu   2(   u   foou   DEBUGu   2(   u   foou   DEBUGu   3(   u   root_loggeru   setLevelu   loggingu   INFOu	   getLoggeru   _watch_for_survivalu   DEBUGu   debugu   next_messageu   assert_log_linesu   _assert_survival(   u   selfu   foou   bar(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_persistent_loggersG  s    

N(   u   __name__u
   __module__u   __doc__u   setUpu   _watch_for_survivalu   _assert_survivalu   test_persistent_loggers(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu
   MemoryTest+  s
   
			u
   MemoryTestc             B   s   |  Ee  Z d    Z d S(   c             C   sβ   t  j d  } t j d  } d } z t  j | d d } | j |  z | j |  Wd  | j |  | j   Xt	 | d d } z  |  j
 | j   j   |  Wd  | j   XWd  t j j |  o t j |  n Xd  S(   Nu   testu   .logu   fooΒu   encodingu   utf8(   u   loggingu	   getLoggeru   tempfileu   mktempu   FileHandleru
   addHandleru   warningu   removeHandleru   closeu   openu   failUnlessEqualu   readu   rstripu   osu   pathu   isfileu   remove(   u   selfu   logu   fnu   datau   handleru   f(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   test_encoding_plain_file_  s      N(   u   __name__u
   __module__u   test_encoding_plain_file(   u
   __locals__(    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   EncodingTest^  s   
u   EncodingTestu   LC_ALLu    c            	   C   s#   t  t t t t t t t t  d  S(   N(	   u   run_unittestu   BuiltinLevelsTestu   BasicFilterTestu   CustomLevelsAndFiltersTestu   MemoryHandlerTestu   ConfigFileTestu   SocketHandlerTestu
   MemoryTestu   EncodingTest(    (    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu	   test_main{  s    		u   __main__(=   u   __doc__u   loggingu   logging.handlersu   logging.configu   copyu   pickleu   iou   gcu   osu   reu   selectu   socketu   socketserveru   ThreadingTCPServeru   StreamRequestHandleru   stringu   structu   sysu   tempfileu   test.supportu   captured_stdoutu   run_with_localeu   run_unittestu   textwrapu	   threadingu   timeu   typesu   unittestu   weakrefu   TestCaseu   BaseTestu   BuiltinLevelsTestu   BasicFilterTestu   SILENTu   TACITURNu   TERSEu   EFFUSIVEu   SOCIABLEu   VERBOSEu	   TALKATIVEu	   GARRULOUSu
   CHATTERBOXu   BORINGu   rangeu   LEVEL_RANGEu   my_logging_levelsu   Filteru   GarrulousFilteru   VerySpecificFilteru   CustomLevelsAndFiltersTestu   MemoryHandlerTestu	   Formatteru   ExceptionFormatteru   ConfigFileTestu   LogRecordStreamHandleru   LogRecordSocketReceiveru   SocketHandlerTestu
   MemoryTestu   EncodingTestu	   test_mainu   __name__(    (    (    u.   /mit/python/lib/python3.0/test/test_logging.pyu   <module>   s|   P%
Y0Σ#/3