-í
é¶<c       s°    d  Z   	 d k Z 
 d k l Z l Z l Z  d k Z d k Z  d k Z  d k	 Z	  e i
 i d ƒ p e i
 d j o  e d e i
 d ƒ ‚ n  e d Z  e i i e d ƒ Z  e i i e d	 ƒ Z  d
 „  Z  d „  Z " d „  Z ( d „  Z , d „  Z 1 d „  Z 6 d „  Z = d „  Z @ d „  Z G d „  Z N d „  Z _ d e i f d „  ƒ  YZ Od „  Z Se d j o Te ƒ  n d S(   s1   
   Tests for the mhlib module
   Nick Mathewson
N(   s   run_unittests   TESTFNs   TestSkippeds   wins   riscoss   test_mhlib skipped on %s -- s   too many Unix assumptionss   _MHs   MHs   .mh_profilec    s#     t  i i |  i d ƒ Œ  Sd  S(   Ns   /(   s   oss   paths   joins   fs   split(   s   f(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   normF s   c    s~     t  i i |  ƒ d }  | o t  i i | ƒ o  t | ƒ n  t |  d ƒ }  | i	 | ƒ   | i ƒ  d  S(   Ni    s   w(   s   oss   paths   splits   fnames   dirs   existss   mkdirss   opens   fs   writes   contentss   close(   s   fnames   contentss   dirs   f(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys	   writeFile s   c    s9   " # t  |  ƒ } $ | i ƒ  } % | i ƒ  & | Sd  S(   N(   s   opens   fnames   fs   reads   rs   close(   s   fnames   rs   f(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   readFile" s   c    sc   ( ) g  i  } |  i ƒ  D) ]  \ } } | d | | f ƒ q ~ } * t t d i	 | ƒ ƒ d  S(   Ns   %s: %s
s    (
   s   appends   _[1]s   dicts	   iteritemss   ks   vs   contentss	   writeFiles
   _mhprofiles   join(   s   dicts   _[1]s   vs   ks   contents(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   writeProfile( s    ,c    s<   , - t  |  ƒ }  . t t i i t d ƒ / d |  ƒ d  S(   Ns   contexts   Current-Folder: %s
(   s   normFs   folders	   writeFiles   oss   paths   joins   _mhpath(   s   folder(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   writeContext, s   c    s?   1 2 t  |  ƒ }  3 t t i i t |  d ƒ 4 d | ƒ d  S(   Ns   .mh_sequencess   cur: %s
(   s   normFs   folders	   writeFiles   oss   paths   joins   _mhpaths   cur(   s   folders   cur(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   writeCurMessage1 s   c    s¹   6 7 t  |  ƒ }  8 d i g  i } | i ƒ  D8 ]  \ } } | d | | f ƒ q/ ~ ƒ } 9 d | | f } : t t i i t |  ƒ ƒ ; t t i i t |  t | ƒ ƒ | ƒ d  S(   Ns    s   %s: %s
s   %s
%s
(   s   normFs   folders   joins   appends   _[1]s   headerss	   iteritemss   ks   vs   bodys   contentss   mkdirss   oss   paths   _mhpaths	   writeFiles   strs   n(   s   folders   ns   headerss   bodys   ks   _[1]s   vs   contents(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   writeMessage6 s    /c      s&   = > t  i t i i t ƒ t ƒ Sd  S(   N(   s   mhlibs   MHs   oss   paths   abspaths   _mhpaths
   _mhprofile(    (    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   getMH= s   c    sz   @ A |  i d ƒ } B g  i } | DB ]0 } B t | ƒ d j o | | i ƒ  ƒ n q& ~ } C | i ƒ  D | Sd  S(   Ns   
i   (	   s   ss   splits   liness   appends   _[1]s   lines   lens   strips   sort(   s   ss   _[1]s   liness   line(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys	   sortLines@ s    	 3c    sm   G H t  i i |  ƒ p
 |  d j o I d  Sn J t  i i |  ƒ \ } } K t | ƒ L t  i |  ƒ d  S(   Ns    (	   s   oss   paths   existss   fnames   splits   bases   files   mkdirss   mkdir(   s   fnames   bases   file(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   mkdirsG s
   #c    sÖ   N O t  i i |  ƒ o P d  Sn Q x€ t  i |  ƒ DQ ]l } R t  i i |  | ƒ } S t  i i | ƒ o T t	 | ƒ n( V y W t  i
 | ƒ Wn X Y n Xq8 WZ y [ t  i |  ƒ Wn \ ] n Xd  S(   N(   s   oss   paths   existss   fnames   listdirs   fs   joins   fullnames   isdirs   deltrees   unlinks   rmdir(   s   fnames   fullnames   f(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   deltreeN s    	s
   MhlibTestsc      s_   _ t  Z ` d „  Z ‡ d „  Z Š d „  Z ¤ d „  Z ¿ d „  Z ö d „  Z 4d „  Z RS(   Nc    sµ  ` a t  t ƒ b t t ƒ c t h  t i i t ƒ d <d d <d d <ƒ j t d d k h  d d	 <d
 d <d d <m d ƒ n t d d o h  d
 d	 <d d <d d <q d ƒ t x` t	 d d ƒ t	 d d d ƒ Dt ]< } u t d | v h  d d	 <d | d <w d | ƒ qâ Wz d „  } ~ | d d ƒ  | d d ƒ € | d d ƒ  | d d ƒ ‚ | d d ƒ ƒ | d  d ƒ „ | d! d ƒ … | d! d ƒ d  S("   Ns   Paths   emacss   Editors   camping holidays   ignored-attributes   inboxi   s   Mrs. Premises   Froms   Mrs. Conclusions   Tos   18 July 2001s   Dates   Hullo, Mrs. Conclusion!
i   s   29 July 2001s   Hullo, Mrs. Premise!
i   ie   iÉ   s   wides   nowheres   message #%ss   Subjects   This is message number %s
c    s@   z { t  |  | | h  d |  | f d <} d | |  f ƒ d  S(   Ns   Message %s/%ss   Subjects    This is message number %s in %s
(   s   writeMessages   folders   n(   s   folders   n(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   deepz s   s   deep/f1i   s   deep/f2i   i   s   deeps
   deep/f2/f3(   s   deltrees   _mhroots   mkdirss   _mhpaths   writeProfiles   oss   paths   abspaths   writeMessages   ranges   is   deep(   s   selfs   is   deep(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   setUp` s.   4!
!
# 	c    s   ‡ ˆ t  t ƒ d  S(   N(   s   deltrees   _mhroot(   s   self(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   tearDown‡ s   c    s»  Š ‹ t  d ƒ Œ t d d ƒ  t ƒ  }  |  i }  | | i d ƒ d ƒ ‘ | | i d ƒ t ƒ ’ | | i	 ƒ  t
 i i t ƒ ƒ “ | | i ƒ  d ƒ • | i d ƒ – | | i ƒ  d ƒ — | t t
 i i t d ƒ ƒ ˜ d ƒ š | i d ƒ œ | i d ƒ }  | | i ƒ  ž t
 i i t
 i i t ƒ d ƒ ƒ Ÿ | | i ƒ    t
 i i t
 i i t ƒ d d	 ƒ ƒ ¡ | | i d
 ƒ ¢ t
 i i t
 i i t ƒ d d ƒ ƒ d  S(   Ns   inboxi   s   Editors   emacss   not-sets   wides   contexts   Current-Folder: wide
s   .mh_sequencesi   s   1(   s   writeContexts   writeCurMessages   getMHs   mhs   selfs   assertEqualss   eqs
   getprofiles   Nones   getpaths   oss   paths   abspaths   _mhpaths
   getcontexts
   setcontexts   readFiles   joins
   openfolders   inboxs   getfullnames   getsequencesfilenames   getmessagefilename(   s   selfs   eqs   mhs   inbox(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys
   test_basicŠ s(   "
%(c    sŠ  ¤ ¥ t  ƒ  } ¦ |  i } ¨ | i ƒ  } © | i ƒ  ª | | d d d g ƒ ¬ | i ƒ  } ­ | i ƒ  ® t	 t
 d d d d d d g ƒ } ° | i ƒ  ± | | | ƒ ³ | i d ƒ } ´ | i ƒ  µ | | t	 t
 d d g ƒ ƒ · | i d ƒ } ¸ | i ƒ  ¹ | | t	 t
 d d d g ƒ ƒ º | | i t
 d ƒ ƒ t
 d ƒ g ƒ ¼ | | i d ƒ g  ƒ ½ | | i d ƒ g  ƒ d  S(   Ns   deeps   inboxs   wides   deep/f1s   deep/f2s
   deep/f2/f3(   s   getMHs   mhs   selfs   assertEqualss   eqs   listfolderss   folderss   sorts   listallfolderss   maps   normFs   tfolderss   listsubfolderss   listallsubfolders(   s   selfs   folderss   tfolderss   eqs   mh(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   test_listfolders¤ s&   $"(c  
  sz  ¿ À t  ƒ  } Á |  i ‰ Â t d d ƒ Ä | i d ƒ ‰  Å ˆ  i ƒ  } Æ ˆ | t
 d d ƒ t
 d d d ƒ ƒ Ç ˆ ˆ  i ƒ  d ƒ È ˆ  i d ƒ É ˆ t t i i t d d ƒ ƒ Ê d	 ƒ Ì ‡ ‡  d
 †  }
 Ï |
 d t
 d d ƒ ƒ Ð |
 d t
 d d ƒ t
 d d d ƒ ƒ Ñ |
 d t
 d d ƒ t
 d d d ƒ ƒ Ó |
 d t
 d d ƒ ƒ Ô |
 d t
 d d ƒ ƒ Õ |
 d t
 d d d ƒ ƒ × |
 d d g ƒ Ø |
 d d g ƒ Ù |
 d d g ƒ Ú |
 d d g ƒ Û |
 d d d d g ƒ Ü |
 d t
 d d ƒ ƒ Ý |
 d t
 d  d d ƒ ƒ Þ |
 d! d d d g ƒ à d d" d# d$ d% d& d' d( g } á g  i } t
 d d) ƒ Dá ]% }	 á |	 | j o | |	 ƒ n q~ } â ˆ  i h  d g d <| d* <| d+ <ƒ å t t i i t d d ƒ ƒ } æ t | ƒ } ç ˆ | d, d- d. g ƒ ë |
 d* | ƒ ì |
 d/ d g ƒ í |
 d0 d d" g ƒ î |
 d1 d' d( g ƒ d  S(2   Ns   widei7   i   ie   iÉ   i   ic   s   .mh_sequencess   cur: 99
c    s    Ì Í ˆ  ˆ i |  ƒ | ƒ d  S(   N(   s   eqs   fs   parsesequences   seqs   val(   s   seqs   val(   s   eqs   f(    s%   /usr/lib/python2.2/test/test_mhlib.pys   seqeqÌ s   s   5-55i8   s   90-108iZ   im   s   10:10i
   i   s   10:+10s   101:10iy   s   curs   .s   previb   s   nextid   s   cur:-3ia   s	   first-curs   150-lasti—   s	   prev-nexti   i   i   i   i   i   i   i   s   lowprimes	   lowcomposs   cur: 5s,   lowcompos: 6 8-10 12 14-16 18 20-22 24-28 30s   lowprime: 5 7 11 13 17 19 23 29s
   lowprime:1s
   lowprime:2s   lowprime:-2(   s   getMHs   mhs   selfs   assertEqualss   eqs   writeCurMessages
   openfolders   fs   listmessagess   alls   ranges
   getcurrents
   setcurrents   readFiles   oss   paths   joins   _mhpaths   seqeqs	   lowprimess   appends   _[1]s   xs	   lowcomposs   putsequencess   seqss	   sortLines(   s   selfs   fs   eqs   alls   mhs	   lowcomposs	   lowprimess   _[1]s   seqss   xs   seqeq(    (   s   fs   eqs%   /usr/lib/python2.2/test/test_mhlib.pys   test_sequence¿ sJ   )!
))! 	 (.!c    s¯  ö ÷ t  ƒ  } ø |  i } ú | i d ƒ û |  i d | i ƒ  j ƒ ü t i	 i
 t d ƒ } ý |  i t i	 i | ƒ ƒ ÿ | i d ƒ ‰   ‡  d †  } | d ƒ | d ƒ | d ƒ | t ˆ  i d ƒ ƒ 	d ƒ | ˆ  i ƒ  d d d g ƒ t i | ƒ } | i ƒ  | | d d d	 g ƒ ˆ  i d d g ƒ t i | ƒ } | i ƒ  | | d
 d d	 g ƒ | ˆ  i ƒ  d g ƒ | d ƒ | d ƒ | d ƒ | i d ƒ | i d ƒ } | | i ƒ  g  ƒ ˆ  i d | d ƒ ˆ  i d | d ƒ | ˆ  i ƒ  d d g ƒ | | i ƒ  d d g ƒ  | t | i d ƒ ƒ !d ƒ #ˆ  i d | d ƒ $| ˆ  i ƒ  d d g ƒ %| t | i d ƒ ƒ &d ƒ (ˆ  i d d g | ƒ )| ˆ  i ƒ  g  ƒ *| | i ƒ  d d d d d g ƒ +| t | i d ƒ ƒ ,d ƒ /| i d ƒ 0| i d ƒ 1|  i d | i ƒ  j ƒ 2|  i t i	 i | ƒ ƒ d  S(   Ns   dummy1c    s6    d |  |  f } ˆ  i |  t i | ƒ ƒ d  S(   Ns(   From: foo
Subject: %s

Dummy Message %s
(   s   ns   msgs   fs   createmessages   StringIO(   s   ns   msg(   s   f(    s%   /usr/lib/python2.2/test/test_mhlib.pys   create s   i   i   i	   s&   From: foo
Subject: 9

Dummy Message 9
s   7s   8s   9s   ,7s   ,8i
   i   i   s   dummy2i   i   s(   From: foo
Subject: 10

Dummy Message 10
i   i   s(   From: foo
Subject: 12

Dummy Message 12
(   s   getMHs   mhs   selfs   assertEqualss   eqs
   makefolders   assert_s   listfolderss   oss   paths   joins   _mhpaths   existss
   openfolders   fs   creates   readFiles   getmessagefilenames   listmessagess   listdirs   filess   sorts   removemessagess   f2s   movemessages   copymessages   refilemessagess   deletefolder(   s   selfs   filess   fs   mhs   f2s   paths   eqs   create(    (   s   fs%   /usr/lib/python2.2/test/test_mhlib.pys   test_modifyö s^   


%
c    s  45t  ƒ  } 6|  i } 8| i d ƒ } 9| i d ƒ } ;| | i	 d ƒ d ƒ <| | i	 d ƒ d ƒ @t
 | i ƒ  ƒ } A| | d d d	 g ƒ Dt
 | i d
 „  ƒ ƒ } E| | d d g ƒ G| | i ƒ  d ƒ H| | i d ƒ d ƒ K| i i ƒ  L~ d  S(   Ns   inboxi   s   Froms   Mrs. Premises   Tos   Mrs. Conclusions   Date: 18 July 2001s   From: Mrs. Premises   To: Mrs. Conclusionc    s   Dt  |  ƒ d j S(   Ni   (   s   lens   h(   s   h(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   <lambda>Ds    s   Hullo, Mrs. Conclusion!

i    (   s   getMHs   mhs   selfs   assertEqualss   eqs
   openfolders   fs   openmessages   msgs	   getheaders	   sortLiness   getheadertexts   liness   getbodytexts   fps   close(   s   selfs   fs   msgs   liness   eqs   mh(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys	   test_read4s   (	   s   __name__s
   __module__s   setUps   tearDowns
   test_basics   test_listfolderss   test_sequences   test_modifys	   test_read(    (    (    s%   /usr/lib/python2.2/test/test_mhlib.pys
   MhlibTests_ s   	'7>c      s   OPt  t ƒ d  S(   N(   s   run_unittests
   MhlibTests(    (    (    s%   /usr/lib/python2.2/test/test_mhlib.pys	   test_mainOs   s   __main__(    s   __doc__s   unittests   test_supports   run_unittests   TESTFNs   TestSkippeds   oss   StringIOs   syss   mhlibs   platforms
   startswiths   _mhroots   paths   joins   _mhpaths
   _mhprofiles   normFs	   writeFiles   readFiles   writeProfiles   writeContexts   writeCurMessages   writeMessages   getMHs	   sortLiness   mkdirss   deltrees   TestCases
   MhlibTestss	   test_mains   __name__(   s   writeCurMessages   _mhpaths   TestSkippeds   unittests   getMHs   deltrees
   _mhprofiles   writeMessages   _mhroots   mkdirss
   MhlibTestss   writeContexts   syss   StringIOs   oss   normFs   readFiles	   writeFiles	   sortLiness   TESTFNs   run_unittests   mhlibs   writeProfiles	   test_main(    (    s%   /usr/lib/python2.2/test/test_mhlib.pys   ? s2   &ð