mò
­fIc        .   @   s=  d  k  l Z d k Z d k Z d k Z d k Z d e f d „  ƒ  YZ d e i f d „  ƒ  YZ	 d e	 f d „  ƒ  YZ
 d e	 f d	 „  ƒ  YZ d
 e	 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d d f d d f d d f d d f d d f d d f d d f d  d! f d" d# f d$ d% f d& d' f d( d) f d* d+ f d, d- f d. d/ f d0 d1 f d2 d3 f d4 d5 f d6 d7 f g Z x0 e D]( Z e e ƒ d8 j o e e ƒ GHn q¢Wd9 e i f d: „  ƒ  YZ d; e i f d< „  ƒ  YZ d= d> f d? d@ f dA dB f dC dD f dE dF f e e f dG dH f dI dJ f dK dK f dL dL f dM dM f dN dN f dO dO f dP dP f dQ dP f dR e f dS dP f dT dU f dV dP f dW dW f dX e f dY e f dZ dU f d[ e f d\ e f d] e f d^ e f d_ e f d` e f da e f db e f dc e f dd de f df e f dg e f dh e f di e f dj e f dk e f dl dm f dn e f do do f e e f dp dq f dr ds f g- Z dt e i f du „  ƒ  YZ dv e i f dw „  ƒ  YZ dx e i f dy „  ƒ  YZ dz e i f d{ „  ƒ  YZ d| e i f d} „  ƒ  YZ d~ „  Z e d j o e ƒ  n d S(€   (   s   test_supportNt   Queuec           B   s,   t  Z d  Z d „  Z d „  Z d d „ Z RS(   sF   
    queue: write bytes at one end, read bytes from the other end
    c         C   s   d |  _ d  S(   Nt    (   t   selft   _buffer(   R   (    (    t-   /mit/python/lib/python2.4/test/test_codecs.pyt   __init__
   s    c         C   s   |  i | 7_ d  S(   N(   R   R   t   chars(   R   R   (    (    R   t   write   s    iÿÿÿÿc         C   sL   | d j  o |  i } d |  _ | Sn" |  i |  } |  i | |  _ | Sd  S(   Ni    R   (   t   sizeR   R   t   s(   R   R   R	   (    (    R   t   read   s    		(   t   __name__t
   __module__t   __doc__R   R   R
   (    (    (    R   R       s    		t   ReadTestc           B   sG   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s™   d d d d d f } |  i } t i | ƒ t i | i | ƒ ƒ ƒ } xJ t d ƒ D]< } | i
 d d ƒ | i ƒ  } |  i | t | ƒ  | ƒ qU Wd  S(   Nu   %s
%s
id   u   abc123u   def456i   i    (   R	   R   t   encodingt   codecst	   getreadert   StringIOt   encodet   readert   xranget   tt   seekt   readlinet   linet   assertEqualt   len(   R   R   R	   R   R   R   (    (    R   t	   test_seek   s    	' c         C   sÀ   t  ƒ  } t i |  i ƒ | ƒ } d } xV t | i
 |  i ƒ | ƒ D]9 \ } } | i | ƒ | | i ƒ  7} |  i | | ƒ qC W|  i | i ƒ  d ƒ |  i | i d ƒ |  i | i d ƒ d  S(   Nu    R   (   R    t   qR   R   R   R   t   rt   resultt   zipt   inputR   t   partialresultst   ct   partialresultR   R
   R   t
   bytebuffert
   charbuffer(   R   R!   R"   R#   R$   R   R   R   (    (    R   t   check_partial&   s    	 c      	      s  ‡  d †  ‰ t d  ‡ d † } d } d } d } ˆ  i | | t ƒ | ƒ ˆ  i | | t	 ƒ | ƒ ˆ  i | | t d ƒ | ƒ ˆ  i | | t	 d ƒ | ƒ g  }	 g  } xN t d i ƒ  ƒ D]: \ } }
 |	 i | d d	 |
 ƒ | i | d d	 ƒ q¹ Wˆ  i | d
 i |	 ƒ t ƒ d
 i |	 ƒ ƒ ˆ  i | d
 i |	 ƒ t	 ƒ d
 i | ƒ ƒ xË t d ƒ D]½ } x´ d i ƒ  D]¦ }
 d | d |
 d } ˆ | ƒ } x8 t d ƒ D]* } ˆ  i | i d t ƒ | d |
 ƒ q¢Wˆ | ƒ } x4 t d ƒ D]& } ˆ  i | i d t	 ƒ | d ƒ qéWqmWqZWd  S(   Nc            s1   t  i  |  i ˆ  i ƒ ƒ } t i ˆ  i ƒ | ƒ S(   N(   R   R!   R   R   R   t   streamR   R   (   R!   R(   (   R   (    R   R   8   s    c            s_   ˆ  |  ƒ } g  } x= t o5 | i d | d | ƒ } | p Pn | i	 | ƒ q Wd i
 | ƒ S(   NR   t   keependst   |(   R   R!   R   t   linest   TrueR   R   R)   R   t   appendt   join(   R!   R)   R   R+   R   R   (   R   (    R   t   readalllines<   s     u   foo
bar
bazspamâ€¨eggsu   foo
|bar
|baz|spamâ€¨|eggsu   foo|bar|baz|spam|eggsi
   u
   
 
  â€¨iÈ   u   Ã„2R   iP   u   au   xxx
R)   (   R   R,   t   NoneR/   R	   t	   sexpectedt   sexpectednoendsR   R   t   Falset   vwt   vwot	   enumeratet   splitt   it   lineendR-   R.   R   R   R   R   (   R   R   R   R8   R2   R	   R1   R/   R5   R4   R9   R   (    (   R   R   R   t   test_readline7   s@    
 ++    c      =   C   s.  d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d  d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 g= } t i d7 i | ƒ i |  i ƒ ƒ } t i |  i ƒ | ƒ } x. t
 | ƒ D]  \ } } |  i | | | ƒ qWd  S(8   Ns:   <%!--===================================================
s,       BLOG index page: show recent articles,
s7       today's articles, or articles of a specific date.
s>   ========================================================--%>
s!   <%@inputencoding="ISO-8859-1"%>
s   <%@pagetemplate=TEMPLATE.y%>
s$   <%@import=import frog.util, frog%>
s!   <%@import=import frog.objects%>
s9   <%@import=from frog.storageerrors import StorageError%>
s   <%
s   
s   import logging
s+   log=logging.getLogger("Snakelets.logger")
s   user=self.SessionCtx.user
s-   storageEngine=self.SessionCtx.storageEngine
s-   def readArticlesFromDate(date, count=None):
s2       entryids=storageEngine.listBlogEntries(date)
s%       entryids.reverse() # descending
s       if count:
s#           entryids=entryids[:count]
s
       try:
s\           return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
s       except StorageError,x:
s6           log.error("Error loading articles: "+str(x))
s,           self.abort("cannot load articles")
s   showdate=None
s   arg=self.Request.getArg()
s   if arg=="today":
s,       #-------------------- TODAY'S ARTICLES
s-       self.write("<h2>Today's articles</h2>")
s(       showdate = frog.util.isodatestr() 
s.       entries = readArticlesFromDate(showdate)
s   elif arg=="active":
s4       #-------------------- ACTIVE ARTICLES redirect
s        self.Yredirect("active.y")
s   elif arg=="login":
s/       #-------------------- LOGIN PAGE redirect
s       self.Yredirect("login.y")
s   elif arg=="date":
s7       #-------------------- ARTICLES OF A SPECIFIC DATE
s2       showdate = self.Request.getParameter("date")
sV       self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
s   else:
s+       #-------------------- RECENT ARTICLES
s,       self.write("<h2>Recent articles</h2>")
s.       dates=storageEngine.listBlogEntryDates()
s       if dates:
s           entries=[]
s           SHOWAMOUNT=10
s            for showdate in dates:
sW               entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
s*               if len(entries)>=SHOWAMOUNT:
s                   break
s                   
R   (   R	   R   R.   R   R   R   R(   R   R   R   R6   R8   R   R   (   R   R(   R8   R   R	   R   (    (    R   t   test_bug1175396i   s    ½?$ c         C   sÌ  t  ƒ  } t i |  i ƒ | ƒ } t i |  i ƒ | ƒ } | i	 d ƒ |  i
 | i d t ƒ d ƒ | i	 d ƒ |  i
 | i d t ƒ d ƒ |  i
 | i d t ƒ d ƒ | i	 d ƒ |  i
 | i d t ƒ d ƒ |  i
 | i d t ƒ d ƒ | i	 d ƒ |  i
 | i d t ƒ d ƒ | i	 d ƒ |  i
 | i d t ƒ d ƒ |  i
 | i d t ƒ d	 ƒ | i	 d ƒ |  i
 | i d t ƒ d ƒ |  i
 | i d t ƒ d ƒ | i	 d
 ƒ |  i
 | i d t ƒ d
 ƒ d  S(   Nu   fooR)   u   foou   
baru    u   baru   bazu   
u   baru   foo
(   R    R   R   t	   getwriterR   R   t   writerR   R   R   R   R   R3   R,   (   R   R=   R   R   (    (    R   t   test_readlinequeue®   s*    	c         C   s¯   d } d } d } | | | i |  i ƒ } t i | ƒ } t	 i
 |  i ƒ | ƒ } |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  d ƒ d  S(   NuA   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
u`   offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
u   next line.
u    (   t   s1t   s2t   s3R   R   R   R	   R   R(   R   R   R   R   R   (   R   R(   RA   R@   R	   R   R?   (    (    R   t   test_bug1098990_aÉ   s    c   	      C   sï   d } d } d } d } d } | | | | | i |  i ƒ } t	 i	 | ƒ } t i |  i ƒ | ƒ } |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  | ƒ |  i | i ƒ  d ƒ d  S(   Nu   aaaaaaaaaaaaaaaaaaaaaaaa
u   bbbbbbbbbbbbbbbbbbbbbbbb
u   stillokay:bbbbxx
u   broken!!!!badbad
u   againokay.
u    (   R?   R@   RA   t   s4t   s5R   R   R   R	   R   R(   R   R   R   R   R   (	   R   R(   RA   R@   RD   RC   R	   R   R?   (    (    R   t   test_bug1098990_bÖ   s    "(	   R   R   R   R'   R:   R;   R>   RB   RE   (    (    (    R   R      s   			2	E		t	   UTF16Testc           B   s,   t  Z d Z d Z d Z d „  Z d „  Z RS(   Ns   utf-16s   ÿþs p a m s p a m s   þÿ s p a m s p a mc         C   s·   t  i |  i ƒ \ } } } } t i ƒ  } | | ƒ } | i
 d ƒ | i
 d ƒ | i ƒ  } |  i | |  i j p | |  i j ƒ t i | ƒ } | | ƒ } |  i | i ƒ  d ƒ d  S(   Nu   spamu   spamspam(   R   t   lookupR   R   t   _R   R=   R   R	   t   fR   t   getvaluet   dt   assert_t   spamlet   spambet   assertEqualsR
   (   R   RI   RK   R=   R   R	   RH   (    (    R   t   test_only_one_bomí   s    &c         C   s2   |  i d d d d d d d d d d d g
 ƒ d  S(   Nu    Ã¿Ä€ï¿¿u    u    u    Ã¿u    Ã¿Ä€(   R   R'   (   R   (    (    R   t   test_partialü   s    	(   R   R   R   RM   RN   RP   RQ   (    (    (    R   RF   ç   s
   	t   UTF16LETestc           B   s   t  Z d Z d „  Z RS(   Ns	   utf-16-lec      
   C   s,   |  i d d d d d d d d d g ƒ d  S(   Nu    Ã¿Ä€ï¿¿u    u    u    Ã¿u    Ã¿Ä€(   R   R'   (   R   (    (    R   RQ     s    	(   R   R   R   RQ   (    (    (    R   RR     s   t   UTF16BETestc           B   s   t  Z d Z d „  Z RS(   Ns	   utf-16-bec      
   C   s,   |  i d d d d d d d d d g ƒ d  S(   Nu    Ã¿Ä€ï¿¿u    u    u    Ã¿u    Ã¿Ä€(   R   R'   (   R   (    (    R   RQ   "  s    	(   R   R   R   RQ   (    (    (    R   RS     s   t   UTF8Testc           B   s   t  Z d Z d „  Z RS(   Ns   utf-8c         C   s5   |  i d d d d d d d d d d d d g ƒ d  S(   Nu    Ã¿ß¿à €ï¿¿u    u    Ã¿u    Ã¿ß¿u    Ã¿ß¿à €(   R   R'   (   R   (    (    R   RQ   4  s    	(   R   R   R   RQ   (    (    (    R   RT   1  s   t   EscapeDecodeTestc           B   s   t  Z d „  Z RS(   Nc         C   s   |  i t i d ƒ d ƒ d  S(   NR   i    (   R   i    (   R   RO   R   t   escape_decode(   R   (    (    R   t   test_empty_escape_decodeG  s    (   R   R   RW   (    (    (    R   RU   F  s   t   RecodingTestc           B   s   t  Z d „  Z RS(   Nc         C   s<   t  i  ƒ  } t i | d d ƒ } | i d ƒ | i ƒ  d  S(   Nt   unicode_internals   utf-8u   a(   R   RI   R   t   EncodedFilet   f2R   t   close(   R   R[   RI   (    (    R   t   test_recodingK  s    (   R   R   R]   (    (    (    R   RX   J  s   u"   Ù„ÙŠÙ‡Ù…Ø§Ø¨ØªÙƒÙ„Ù…ÙˆØ´Ø¹Ø±Ø¨ÙŠØŸt   egbpdaj6bu4bxfgehfvwxnu   ä»–ä»¬ä¸ºä»€ä¹ˆä¸è¯´ä¸­æ–‡t   ihqwcrb4cv8a8dqg056pqjyeu   ä»–å€‘çˆ²ä»€éº½ä¸èªªä¸­æ–‡t   ihqwctvzc91f659drss3x8bo0ybu   ProÄprostÄ›nemluvÃ­Äeskys   Proprostnemluvesky-uyb24dma41au,   ×œ×ž×”×”××¤×©×•×˜×œ××ž×“×‘×¨×™××¢×‘×¨×™×ªt   4dbcagdahymbxekheh6e0a7fei0buZ   à¤¯à¤¹à¤²à¥‹à¤—à¤¹à¤¿à¤¨à¥à¤¦à¥€à¤•à¥à¤¯à¥‹à¤‚à¤¨à¤¹à¥€à¤‚à¤¬à¥‹à¤²à¤¸à¤•à¤¤à¥‡à¤¹à¥ˆà¤‚t,   i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cdu6   ãªãœã¿ã‚“ãªæ—¥æœ¬èªžã‚’è©±ã—ã¦ãã‚Œãªã„ã®ã‹t&   n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxauH   ì„¸ê³„ì˜ëª¨ë“ ì‚¬ëžŒë“¤ì´í•œêµ­ì–´ë¥¼ì´í•´í•œë‹¤ë©´ì–¼ë§ˆë‚˜ì¢‹ì„ê¹ŒtE   989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98cu8   Ð¿Ð¾Ñ‡ÐµÐ¼ÑƒÐ¶ÐµÐ¾Ð½Ð¸Ð½ÐµÐ³Ð¾Ð²Ð¾Ñ€ÑÑ‚Ð¿Ð¾Ñ€ÑƒÑÑÐºÐ¸t    b1abfaaepdrnnbgefbaDotcwatmq2g4lu*   PorquÃ©nopuedensimplementehablarenEspaÃ±ols-   PorqunopuedensimplementehablarenEspaol-fmd56au-   Táº¡isaohá»khÃ´ngthá»ƒchá»‰nÃ³itiáº¿ngViá»‡ts,   TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9gu   3å¹´Bçµ„é‡‘å…«å…ˆç”Ÿs   3B-ww4c5e180e575a65lsy2bu"   å®‰å®¤å¥ˆç¾Žæµ-with-SUPER-MONKEYSs(   -with-SUPER-MONKEYS-pc58ag80a8qai00g7n9nu'   Hello-Another-Way-ãã‚Œãžã‚Œã®å ´æ‰€s(   Hello-Another-Way--fc4qua05auwb3674vfr0bu   ã²ã¨ã¤å±‹æ ¹ã®ä¸‹2s   2-u9tlzr9756bt3uc0vu   Majiã§Koiã™ã‚‹5ç§’å‰s   MajiKoi5-783gue6qz075azm5eu   ãƒ‘ãƒ•ã‚£ãƒ¼deãƒ«ãƒ³ãƒs   de-jg4avhby1noc0du   ãã®ã‚¹ãƒ”ãƒ¼ãƒ‰ã§t   d9juau41awczczpu   -> $1.00 <-s   -> $1.00 <--i   t   PunycodeTestc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s@   x9 t  D]1 \ } } |  i | i d ƒ i ƒ  | i ƒ  ƒ q Wd  S(   Nt   punycode(   t   punycode_testcasest   unit   punyR   RO   R   t   lower(   R   Rj   Rk   (    (    R   t   test_encodeÁ  s     c         C   s4   x- t  D]% \ } } |  i | | i d ƒ ƒ q Wd  S(   NRh   (   Ri   Rj   Rk   R   RO   t   decode(   R   Rj   Rk   (    (    R   t   test_decodeÊ  s     (   R   R   Rm   Ro   (    (    (    R   Rg   À  s   		t   UnicodeInternalTestc           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc         C   så   t  i d j oÑ d d d g } d d	 d
 d d g } xV | D]N \ } } t  i d j o d i t | ƒ ƒ } n |  i
 | | i d ƒ ƒ q; WxQ | D]E } t  i d j o d i t | ƒ ƒ } n |  i t | i d ƒ q” Wn d  S(   Niÿÿ  t    ÿÿu   ô¿¿t     u   ÄR   u    s   ÿÿÿs   €   s      t    t        t   littleRY   (   Rq   u   ô¿¿(   Rr   u   Ä(   R   u    (   t   syst
   maxunicodet   okt   not_okt   internalRj   t	   byteorderR.   t   reversedR   RO   Rn   t   assertRaisest   UnicodeDecodeError(   R   Ry   Rx   Rz   Rj   (    (    R   t   test_bug1251300Ï  s      c         C   s—   t  i d j oƒ y d i d ƒ Wna t j
 oU } |  i d | i ƒ |  i d | i ƒ |  i d | i	 ƒ |  i d | i
 ƒ q“ X|  i ƒ  n d  S(   Niÿÿ  t         RY   i   i   (   Rv   Rw   Rn   R~   t   exR   RO   R   t   objectt   startt   endt   fail(   R   R   (    (    R   t   test_decode_error_attributesé  s    c         C   sz   t  i d j of t i d t i ƒ t i d ƒ } d i d ƒ } | d | d  | d f d ƒ } |  i d | ƒ n d  S(	   Niÿÿ  Rp   RY   u   abs   %s""""%si   i   (   u   abi   (   Rv   Rw   R   t   register_errort   ignore_errorst
   getdecodert   decoderR   t   abt   ignoredR   RO   (   R   RŒ   R‹   RŠ   (    (    R   t   test_decode_callbackõ  s    	(   R   R   R   R†   R   (    (    (    R   Rp   Î  s   		s%   fooÂ­Íá †á ‹barâ€‹â bazï¸€ï¸ˆï¸ï»¿t	   foobarbazt   CAFEt   cafes   ÃŸt   sss   Ä°s   iÌ‡s   ÅƒÍºs   Å„ Î¹s   jÌŒÂ Âªs   Ç° as   á¾·s   á¾¶Î¹s   Ç°s   Îs   Î°s   áº–s   á½–t    s   Â s   áš€s   â€€s   â€‹R   s   ã€€s   s   Â…s   á Žs   ï»¿s   ð…µs   ï„£s   ó±ˆ´s   ôˆ´s   ò¿¾s   ô¿¿s   í½‚s   ï¿½s   â¿µs   Ís   Ìs   â€Žs   â€ªs   ó €s   ó ‚s   fooÖ¾bars	   fooïµbars	   fooï¹¶bars	   foo ÙŽbars   Ø§1s   Ø§1Ø¨s   XÂ­ÃŸÄ°â„¡jÌŒÂ ÂªÎ°â€€s   xssiÌ‡telÇ° aÎ° s   XÃŸãŒ–Ä°â„¡â’ŸãŒ€s*   xssã‚­ãƒ­ãƒ¡ãƒ¼ãƒˆãƒ«iÌ‡tel(d)ã‚¢ãƒ‘ãƒ¼ãƒˆt   NameprepTestc           B   s   t  Z d „  Z RS(   Nc         C   sß   d k  l } xË t t ƒ D]½ \ } \ } } | d  j o q n t | d ƒ } | d  j o |  i
 t | | ƒ q t | d ƒ } y |  i | | ƒ | ƒ Wq t j
 o, } t i d | d t | ƒ f ƒ ‚ q Xq Wd  S(   N(   s   namepreps   utf-8s   Test 3.%d: %si   (   t   encodings.idnat   nameprepR6   t   nameprep_testst   post   origt   preppedR0   t   unicodeR   R}   t   UnicodeErrorRO   t	   Exceptiont   et   test_supportt
   TestFailedt   str(   R   R   R—   R•   R˜   R™   (    (    R   t   test_nameprep™  s     (   R   R   R¡   (    (    (    R   R“   ˜  s   t	   CodecTestc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s   |  i t d d ƒ d ƒ d  S(   Ns
   python.orgt   idnau
   python.org(   R   RO   Rš   (   R   (    (    R   t   test_builtin¬  s    c         C   sN   d  k  } t i d ƒ | i  d ƒ ƒ } | i d ƒ |  i | i ƒ  d ƒ d  S(   NR£   t   abci   u    (   R   R   R   R   R
   R   RO   (   R   R   R   (    (    R   t   test_stream¯  s    	(   R   R   R¤   R¦   (    (    (    R   R¢   «  s   	t   CodecsModuleTestc           B   s,   t  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   se   |  i t i d d ƒ d ƒ |  i t t i ƒ |  i t i d ƒ d ƒ |  i t t i d d ƒ d  S(   Ns   äöüs   latin-1u   Ã¤Ã¶Ã¼R¥   u   abcs   ÿt   ascii(   R   RO   R   Rn   R}   t	   TypeErrorR~   (   R   (    (    R   Ro   ·  s
    c         C   se   |  i t i d d ƒ d ƒ |  i t t i ƒ |  i t i d ƒ d ƒ |  i t t i d d ƒ d  S(   Nu   Ã¤Ã¶Ã¼s   latin-1s   äöüu   abcR¥   u   Ã¿ffR¨   (   R   RO   R   R   R}   R©   t   UnicodeEncodeError(   R   (    (    R   Rm   ¾  s
    c         C   s   |  i t t i ƒ d  S(   N(   R   R}   R©   R   t   register(   R   (    (    R   t   test_registerÅ  s    c         C   s-   |  i t t i ƒ |  i t t i d ƒ d  S(   Nt   __spam__(   R   R}   R©   R   RG   t   LookupError(   R   (    (    R   t   test_lookupÈ  s    (   R   R   Ro   Rm   R¬   R¯   (    (    (    R   R§   µ  s   			t   StreamReaderTestc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s(   t  i d ƒ |  _ t i d ƒ |  _ d  S(   Ns   utf-8s   í•œ
ê¸€(   R   R   R   R   R   R(   (   R   (    (    R   t   setUpÎ  s    c         C   s2   |  i |  i ƒ } |  i | i ƒ  d d g ƒ d  S(   Nu   í•œ
u   ê¸€(   R   R   R(   RI   RO   t	   readlines(   R   RI   (    (    R   t   test_readlinesÒ  s    (   R   R   R±   R³   (    (    (    R   R°   Ì  s   	t   Str2StrTestc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   sc   d i  d ƒ } t i d ƒ t i | ƒ ƒ } | i ƒ  } |  i	 | d ƒ |  i
 t | t ƒ ƒ d  S(   Ns   €t   base64_codec(   R   t   sinR   R   R   R   R
   t   soutR   R   RL   t
   isinstanceR    (   R   R   R·   R¶   (    (    R   t	   test_readØ  s
    c         C   sc   d i  d ƒ } t i d ƒ t i | ƒ ƒ } | i ƒ  } |  i	 | d ƒ |  i
 t | t ƒ ƒ d  S(   Ns   €Rµ   (   R   R¶   R   R   R   R   R   R·   R   R   RL   R¸   R    (   R   R   R·   R¶   (    (    R   R:   ß  s
    (   R   R   R¹   R:   (    (    (    R   R´   Ö  s   	c           C   s5   t  i t t t t t t t t	 t
 t t t t ƒ d  S(   N(   Rž   t   run_unittestRF   RR   RS   RT   RU   RX   Rg   Rp   R“   R¢   R§   R°   R´   (    (    (    R   t	   test_mainæ  s    	t   __main__(   t   testRž   t   unittestR   Rv   R   R‚   R    t   TestCaseR   RF   RR   RS   RT   RU   RX   Ri   R8   R   t   reprRg   Rp   R0   R–   R“   R¢   R§   R°   R´   R»   R   (   Rž   Rp   RU   R¾   R°   Rv   RS   RF   R¢   R»   R´   RT   R    Rg   R–   R   R   RX   RR   R   R8   R§   R“   Ri   (    (    R   t   ?   s8   		Í&
±h 1ÿ œ™

	