ó
C>Qc           @€  s~  d  d l  m Z d  d l Z d  d l Z e j j e j j e j j e ƒ ƒ ƒ g e j e _ d Z d  d l	 Z	 e	 j
 d ƒ 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 m Z m Z m Z m Z m Z d  d l Td  d l m Z m Z m Z m Z e j ƒ  d e j k r9d „  Z  n	 d	 „  Z  d  d
 l! m" Z" d e j# f d „  ƒ  YZ$ d e j# f d „  ƒ  YZ% d e j# f d „  ƒ  YZ& d  d l' m( Z( d  d l) m* Z* d  d l+ Td e j# f d „  ƒ  YZ, d e j# f d „  ƒ  YZ- d e j# f d „  ƒ  YZ. d e j# f d „  ƒ  YZ/ d e j# f d „  ƒ  YZ0 e1 d k rze j2 d ƒ e j3 d d  ƒ e j4 ƒ  n  d S(!   iÿÿÿÿ(   t   with_statementNt   Bazki(   t   customt   modelt   dbt   flavorst   NoResultFoundt   wikit   testingt	   structure(   t   *(   t   invalidate_cachet	   to_pythont   rendert   render_propvals   -vc          G€  s   t  j d j |  ƒ IJd  S(   Nt    (   t   syst   stderrt   join(   t   s(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   debug   s    c          G€  s   d  S(   N(    (   R   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR      s    (   t   tokenizet   TestHelpersc           B€  s   e  Z d  „  Z RS(   c         C€  sß   |  j  t d ƒ g d  f t d ƒ g d
 f g t j t d ƒ d ƒ ƒ |  j  t d ƒ g d  f g t j t d ƒ d ƒ ƒ |  j  t t d ƒ t d ƒ t t d ƒ t d ƒ t	 t d ƒ g d  f g t j t d	 ƒ d ƒ ƒ d  S(   Nu   Foou   Baru   elses   Foo<<else/>>Bart   elseu   FooBart   FooBaru   ifs   <<if>>Foo<<else/>>Bar<</if>>(   u   elseN(   s   else(   s   else(   u   ifN(   u   elseN(   s   else(
   t   assertEqualt   Textt   NoneR   t   safesplit_tagsR   t   Startt   MACROt   Entityt   End(   t   self(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_safesplit_tags"   s    
			(   t   __name__t
   __module__R"   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR       s   t   TestBazbasec           B€  sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C€  s  d t  _ t ƒ  t d ƒ t j ƒ  yÜ t j ƒ  t d d d d ƒt d d ƒ t	 d	 d
 d  ƒ} d | d <d | d <d | d <t j d	 ƒ t d ƒ t	 d | ƒ } t d ƒ d | d <t	 d | ƒ } d | d <d | d <d | d <t d ƒ t j j ƒ  Wn t j ƒ  ‚  n Xd  S(   Nt   BazbaseTests   === Setup B ===u   dispositionu   stringt   defaultt    u   listedu   booleanu   Roott   parentt   cheeseu   commentt   sunnyt   falses   Child...u   Childs   Bees...t   beesu   Pages2   [[http://sevenmonkey.mit.edu/Japan/Early Netsuke]]s/   [[Early Netsuke]] were pretty \emph{awesome}...u   products.   [[EarlyNetsuke]] were pretty \emph{awesome}...u   product2s   Flushing...(   R   t   APP_NAMER   R   R   t   begin_transactionR   t   cleart   Propt   ElementR   R	   t   get_elementt   sessiont   flusht   abort_transaction(   R!   t   roott   childt   page(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   setUp4   s4    	













c         C€  s   t  j ƒ  d  S(   N(   R   R6   (   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   tearDownQ   s    c         C€  s   t  j d ƒ } |  j t | d ƒ d ƒ |  j t j d d ƒ d j ƒ  d ƒ |  j t | d ƒ d ƒ |  j t | d ƒ ƒ d  S(	   Nu   Rootu   dispositionu   sunnyt   dispositionu   commentu   cheeseu   listedu   False(   R	   R3   R   R   R2   t   gett   assertFalseR   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt
   testBasicsT   s    c         C€  s?   t  j d ƒ } | j d d ƒ |  j d t | d d ƒ ƒ d  S(   Nu   Rootu   dispositions   PB&Js   PB\&Ju   tex(   R	   R3   t   set_propR   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testTeX_   s    c         C€  sX   |  j  t d d d ƒ d ƒ |  j  t d d d ƒ d ƒ |  j  t d d d ƒ d ƒ d  S(	   Nu   Pageu   commentu   htmlu…   <p><a href="http://sevenmonkey.mit.edu/Japan/Early%20Netsuke" class="external">http://sevenmonkey.mit.edu/Japan/Early Netsuke</a></p>u   productuc   <p><a href="./Early%20Netsuke" class="internal">Early Netsuke</a> were pretty <i>awesome</i>â€¦</p>u   product2u_   <p><a href="./EarlyNetsuke" class="internal">EarlyNetsuke</a> were pretty <i>awesome</i>â€¦</p>(   R   R   (   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testHTMLd   s    c         C€  s  t  d d ƒ t j d ƒ } | j d d ƒ t j d ƒ } | j d d | j j d ƒ ƒ |  j | t | d ƒ ƒ t j	 d t j
 d ƒ ƒ } |  j | g | ƒ |  j d  t | d ƒ ƒ |  j d t | d ƒ ƒ | j d	 d
 ƒ |  j d t | d	 ƒ ƒ d  S(   Nu   motheru	   referenceu   RootR(   u   Childs   [[%s]]s   utf-8t   motheru   comments   <<Child.mother.disposition/>>R+   (   R1   R	   R3   R@   t   enamet   encodeR   R   R2   t   searchR=   R   R   (   R!   R7   R8   t   kids(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testReferencel   s     c         C€  s”   t  d d ƒ t j d ƒ } | j d d ƒ t j d ƒ } | j d d ƒ |  j | g t | d ƒ ƒ | j d d	 ƒ |  j d t | d ƒ ƒ d  S(
   Nu   fishu
   referencesu   Pageu   namet   Pageu   Roots   [[Page]]u   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>(   R1   R	   R3   R@   R   R   R   (   R!   R9   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testReferencesz   s    	c         C€  s£   t  d d ƒ t j d ƒ } | j d d ƒ t j d ƒ } | j d d ƒ |  j t j | d g ƒ g t | d ƒ ƒ | j d	 d
 ƒ |  j d t | d	 ƒ ƒ d  S(   Nu   fishu
   referencesu   Pageu   names   Page: <<1/>>u   Roots   [[Page/Tree]]u   Treeu   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>u
   Page: Tree(	   R1   R	   R3   R@   R   R   t	   ReferenceR   R   (   R!   R9   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testArgReferences…   s    c         C€  s¦   t  d d ƒ t j d ƒ } | j d d ƒ t j d ƒ } | j d d ƒ |  j t j | d d	 g ƒ g t | d ƒ ƒ | j d
 d ƒ |  j d t | d
 ƒ ƒ d  S(   Nu   fishu
   referencesu   Pageu   names   Page: \1, not \2u   Roots   [[Page/Tree/Grass]]u   Treeu   Grassu   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>u   Page: Tree, not Grass(	   R1   R	   R3   R@   R   R   RK   R   R   (   R!   R9   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testMultiArgReferences   s    c         C€  sE   t  j d ƒ } |  j i d d 6d d 6d d 6| j d ƒ d	 ƒ d  S(
   Nu   Childu   beesu   commentu   falseu   listedu    u   dispositiont   nice_value_mapi    (   R	   R3   R   t   calculate_metadata(   R!   R8   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testMetadata›   s
    (   R#   R$   R:   R;   R?   RA   RB   RH   RJ   RL   RM   RP   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR%   2   s   									t   TestTransactionsc           B€  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C€  s™   t  d ƒ t j ƒ  y` t j ƒ  t d d d d ƒt d d d  ƒ} d | d	 <d
 | d <t d | ƒ } d | d	 <Wn t j ƒ  ‚  n Xt j	 ƒ  d  S(   Ns   === Setup T ===u   dispositionu   stringR'   R(   u   RootR)   R*   u   commentR+   u   ChildR-   (
   R   R   R/   R   R0   R1   R2   R   R6   t   commit_transaction(   R!   R7   R8   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR:   ¤   s    





c         C€  s   t  j ƒ  z< t j d ƒ } | j d d ƒ |  j t d d ƒ d ƒ Wd  t  j ƒ  Xt  j ƒ  z |  j t d d ƒ d ƒ Wd  t  j ƒ  Xd  S(   Nu   Rootu   commentt   fleasu   fleasu   cheese(   R   R/   R	   R3   R@   R   R   R6   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR?   ¶   s    

c         C€  sé   t  j ƒ  z* |  j t j d d ƒ d j ƒ  d ƒ Wd  t  j ƒ  Xt  j ƒ  zI t j d ƒ } | j	 d d ƒ |  j t j d d ƒ d j ƒ  d ƒ Wd  t  j ƒ  Xt  j ƒ  z* |  j t j d d ƒ d j ƒ  d ƒ Wd  t  j ƒ  Xd  S(   NR<   u   sunnyu   commentu   cheeseu   RootRS   u   fleas(
   R   R/   R   R2   R=   R   R6   R	   R3   R@   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testSearchabilityÆ   s"    


c         C€  s#  d d l  m } m } t j ƒ  û t j j ƒ  } x\ t d d | d ƒ D]C } |  j	 t j j
 | t j | k t j | k ƒ ƒ j ƒ  d ƒ qJ Wx… t j j ƒ  D]t } |  j | j | j k  ƒ |  j	 | j | j d d t j j
 | t j | j k t j | j k ƒ ƒ j ƒ  ƒ q¡ WWd  QXd  S(   Niÿÿÿÿ(   t   or_t   and_i   i   (   t
   sqlalchemyRU   RV   R   R/   R2   t   queryt   countt   xrangeR   t   filtert   treeleftt	   treerightt   allt
   assertTrue(   R!   RU   RV   RY   t   it   e(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt
   verifyTreeß   s    #	c         C€  s  |  j  ƒ  t j ƒ  ' t d t j d ƒ ƒ } d | d <Wd  QX|  j  ƒ  t j ƒ  zB t d t j d ƒ ƒ } d | d <|  j | j t j d ƒ ƒ Wd  t j	 ƒ  X|  j  ƒ  t j ƒ  Û t d t j d ƒ ƒ } d | d <t d	 t j d ƒ ƒ } d
 | d <t d t j d ƒ ƒ } d | d <|  j t j d ƒ j t j d ƒ ƒ |  j | j t j d ƒ ƒ |  j | j t j d ƒ ƒ |  j | j | ƒ Wd  QX|  j  ƒ  t j ƒ  ¥ t j d ƒ } t j d ƒ } t j d ƒ } t j d	 ƒ } t j d ƒ } | | _ |  j | j | ƒ |  j | j | ƒ |  j | j | ƒ |  j | j | ƒ Wd  QX|  j  ƒ  t j ƒ  ® t j d ƒ } t j d ƒ } t j d ƒ } t j d	 ƒ } t j d ƒ } | | _ | | _ |  j | j | ƒ |  j | j | ƒ |  j | j | ƒ |  j | j | ƒ Wd  QX|  j  ƒ  t j ƒ  [ y t j d ƒ } Wn) t
 k
 rnt d t j d ƒ ƒ } n X|  j d ƒ d | d <Wd  QX|  j  ƒ  t j ƒ  [ y t j d ƒ } Wn) t
 k
 rát d t j d ƒ ƒ } n X|  j d ƒ d | d <Wd  QX|  j  ƒ  d  S(   Nu   Fishu   Childt   42u   commentu   Disht   47u   Sisht   11u   Cisht   12u   Eisht   13u   Wombats$   There shouldn't already be a Wombat.t   waahu   Dombats$   There shouldn't already be a Dombat.t   daah(   Rb   R   R/   R2   R=   R   R)   R	   R3   R6   R   t   fail(   R!   Ra   t   ft   gt   ct   d(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   testChildrenð   s„    



 




	
		

(   R#   R$   R:   R?   RT   Rb   Ro   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyRQ   ¢   s
   				(   t   Parser(   t   Formatt   TestWikic           B€  s   e  Z d  „  Z d „  Z RS(   c         C€  s5  |  j  t j d ƒ i d d 6ƒ |  j  t j d ƒ i d d 6d d 6ƒ |  j  t j d ƒ i d d 6d d 6ƒ |  j  t j d ƒ i d d 6d d	 6ƒ |  j  t j d
 ƒ i d d 6d d 6ƒ |  j  t j d ƒ i d d 6d d 6ƒ |  j  t j d ƒ i d d 6d d 6ƒ |  j  t j d ƒ i d d 6d d 6ƒ d  S(   Nt   4i   s   4 17t   17i   s   4 "17"s   "17"s
   4 foo="17"t   foos   4 (foo=="17")s   (foo=="17")s   4 (foo!="17")s   (foo!="17")s   4 foo=="17"s	   foo=="17"s   4 foo!="17"s	   foo!="17"(   R   R   t   parse_macro_args(   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_parse_macro_args=  s     c      	   C€  s‘   t  j ƒ   t j d  d  d d  ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ |  j t j t j d ƒ Wd  QXd  S(   Nt   txts   3+5i   s   '3+5'R(   s   '3'.__class__(	   R   R/   R   t   init_eval_stateR   R   t   baz_evalt   assertRaisest   WikiException(   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_baz_evalO  s    (   R#   R$   Rw   R}   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyRr   <  s   	t   TestWikiWithDBc           B€  s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C€  s'  t  d ƒ t j ƒ  yø t j ƒ  t d d d d ƒt d d d d ƒt d	 d
 d  ƒ} d | d <d | d <d | d <t j	 d	 ƒ t  d ƒ t d | ƒ } t  d ƒ d | d <t d | ƒ } d | d <d | d <t  d ƒ t j
 j ƒ  t j ƒ  t j | d  d d ƒ Wn t j ƒ  ‚  n Xd  S(   Ns   === Setup B ===u   dispositionu   stringR'   R(   u   answeru   integerRc   u   RootR)   R*   u   commentR+   Rt   s   Child...u   Childs   Bees...R-   u   Pages2   [[http://sevenmonkey.mit.edu/Japan/Early Netsuke]]s   [[Early Netsuke]]u   products   Flushing...Rx   t   text(   R   R   R/   R   R0   R1   R2   R   R	   R3   R4   R5   R   t   clear_eval_stateRy   R6   (   R!   R7   R8   R9   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR:   Y  s2    













c         C€  s   t  j ƒ  t j ƒ  d  S(   N(   R   R6   R   R€   (   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR;   t  s    
c         C€  sz   t  t t j ƒ } |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ d  S(	   Nu   Root.dispositionR+   u   Root.answeri   u   Root.answer+Root.answeri"   u   'test't   test(   Rp   Rq   R   t
   macro_funct   assertEqualsRz   (   R!   t   parser(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR}   x  s    c         C€  sç   t  t t j ƒ } |  j t t j d ƒ ƒ t d ƒ g ƒ |  j t t j d ƒ ƒ t d ƒ g ƒ |  j t t j d ƒ ƒ t d ƒ t d ƒ g ƒ |  j t t j d ƒ ƒ t d ƒ g ƒ |  j t t j d ƒ ƒ t d	 ƒ g ƒ d  S(
   Nu   Root.dispositionu   sunnyu   Root.answeru   17u   Root.answer+Root.answeru   Root.commentu   cheeseu   'test'u   test(   Rp   Rq   R   R‚   Rƒ   t   listt	   full_evalR   (   R!   R„   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_full_evalƒ  s    (   R#   R$   R:   R;   R}   R‡   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR~   X  s   			t
   TestMacrosc           B€  sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C€  s    t  d ƒ t j ƒ  yq t j ƒ  t d d d d ƒt d d d d ƒt d	 d
 d  ƒ} d | d <d | d <d | d <t j j	 ƒ  Wn t j
 ƒ  ‚  n Xd  S(   Ns   === Setup B ===u   dispositionu   stringR'   R(   u   answeru   integerRc   u   RootR)   R*   u   commentR+   Rt   (   R   R   R/   R   R0   R1   R2   R   R4   R5   R6   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR:   ‘  s    






c         C€  s   t  j ƒ  d  S(   N(   R   R6   (   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR;      s    c         C€  sæ   t  j d ƒ } | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d	 ƒ |  j d
 t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ j ƒ  ƒ d  S(   Nu   Rootu   comments   <<if True>>42<</if>>Rc   s   <<if#2 True>>37<</if#2>>t   37s'   <<if True>>2<<if True>>8<</if>>4<</if>>t   284s;   <<if True>>0<<if False>>9<<else/>>6<</if>><<else/>>4<</if>>t   06sz   <<if Root.disposition == 'sunny'>>
  <<if defined('notdefined')>>
    9
  <<else/>>
    +6
  <</if>>
<<else/>>
  4
<</if>>s   +6(   R	   R3   R@   R   R   t   strip(   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_if£  s    	c         C€  sO   t  j d ƒ } | j d d ƒ | j d d ƒ |  j d t | d d ƒ ƒ d  S(   Nu   Rootu   comments=   <<link "/print/" leaf.username ".pdf">>Packet as PDF<</link>>u   usernamet   fishsC   <p><a href="/print/fish.pdf" class="internal">Packet as PDF</a></p>u   html(   R	   R3   R@   R   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt	   test_link¸  s    c         C€  s?   t  j d ƒ } | j d d ƒ |  j d t | d d ƒ ƒ d  S(   Nu   Rootu   comments   <<link Root>>Root<</link>>s1   <p><a href="./Root" class="internal">Root</a></p>u   html(   R	   R3   R@   R   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_local_linkÀ  s
    c         C€  s  t  j d ƒ } | j d ƒ } | j d ƒ } | j d d ƒ | j d d ƒ | j d ƒ } | j d d	 ƒ | j d d
 ƒ | j d ƒ } | j d d ƒ | j d d ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ |  j d t | d ƒ ƒ t d d d d ƒ| j d d ƒ | j d d ƒ |  j d t | d ƒ ƒ | j d d ƒ | j d  d! ƒ |  j d" t | d ƒ ƒ |  j d# t | d d$ ƒ ƒ |  j d# t | d  d$ ƒ ƒ | j d d% ƒ |  j d& t | d d$ ƒ ƒ |  j d& t | d  d$ ƒ ƒ d  S('   Nu   Rootu   Treeu   Aspenu   dispositiont   aridu   answerRc   u   Bircht   balmyt   7u   Cedart   cloudyRt   u   comments3   <<foreach Tree t>>
* <<t.disposition/>><</foreach>>s    * arid
 * balmy
 * cloudysB   <<foreach Tree t orderBy=answer>>
* <<t.disposition/>><</foreach>>s    * balmy
 * cloudy
 * aridsJ   <<foreach Tree t ("a" in t.disposition)>>
* <<t.disposition/>><</foreach>>s    * arid
 * balmysD   <<foreach Tree t ifNone="* None.">>
* <<t.disposition/>><</foreach>>sE   <<foreach Aspen t ifNone="* None.">>
* <<t.disposition/>><</foreach>>s    * None.u   treesu   labeledrefsR'   R(   s+   [[Birch|your favorite]], [[Aspen|nice too]]sP   <<foreach leaf.trees t,desc>>
  * **<<t.element_name/>>**: <<desc/>><</foreach>>s.    * *Birch*: your favorite
 * *Aspen*: nice toosi   <<foreach Tree t>>
* <<t.disposition/>><</foreach>>

<<foreach Tree t>>
* <<t.element_name/>><</foreach>>u   dreams   <<Root.comment/>>s6    * arid
 * balmy
 * cloudy

 * Aspen
 * Birch
 * Cedarsv   <ul>
 <li>arid</li>
 <li>balmy</li>
 <li>cloudy</li>
</ul>

<ul>
 <li>Aspen</li>
 <li>Birch</li>
 <li>Cedar</li>
</ul>t   htmls@   == Trees ==

<<foreach Tree t>>
* <<t.disposition/>><</foreach>>sJ   <h2>Trees</h2>

<ul>
 <li>arid</li>
 <li>balmy</li>
 <li>cloudy</li>
</ul>(   R	   R3   t   create_childR@   R   R   R1   (   R!   R7   t   tt   at   bRm   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_foreachÇ  sf    							

	c         C€  s¨   t  j d ƒ } t d d d d ƒ| j d d ƒ t d | j ƒ } t d | ƒ } d	 | d <t d
 | ƒ } t d | ƒ } | j d d ƒ |  j d t | d ƒ ƒ d  S(   Nu   Rootu   stuffu
   referencesR'   R(   s	   [[Aspen]]u   Treeu   Aspens	   [[Cedar]]u   Birchu   Cedaru   commentsb   <<foreach recursive_get(leaf, 'stuff') t has_ancestor(t, Tree)>>
* <<t.element_name/>><</foreach>>s    * Aspen
 * Cedar(   R	   R3   R1   R@   R2   Ra   R   R   (   R!   R7   R—   R˜   R™   Rm   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_recursive_get)  s    
	c         C€  s¥   t  j d ƒ } t d d d d ƒt d d d d ƒt d d d d ƒ| j d d ƒ | j d d	 ƒ | j d d
 ƒ | j d d ƒ |  j d t | d ƒ ƒ d  S(   Nu   Rootu   fishu   rawR'   R(   u   dishu   wisht   carpt   bowlt   staru   comments\   <<foreachpropin leaf s flavor="raw">>
* **<<propname *s/>>**: <<leaf.*s/>><</foreachpropin>>s/    * *fish*: carp
 * *dish*: bowl
 * *wish*: star(   R	   R3   R1   R@   R   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_foreachpropin8  s    	c         C€  s<   t  j d ƒ } | j d d ƒ |  j d t | d ƒ ƒ d  S(   Nu   Rootu   comments$   <<eval leaf in dict([[Root, 42]])/>>t   True(   R	   R3   R@   R   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt	   test_evalF  s    c         C€  sH   t  j d ƒ } | j d d ƒ |  j d t j d t | d ƒ ƒ ƒ d  S(   Nu   Rootu   comments2   Pok\'emon ma\~nana look\`ed at Zo\"e in T\=oky\=o.u,   PokÃ©mon maÃ±ana lookÃ¨d at ZoÃ« in TÅkyÅ.t   NFC(   R	   R3   R@   R   t   unicodedatat	   normalizeR   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_accentsK  s    c         C€  s„   t  j d ƒ } | j d d ƒ |  j d t | d ƒ ƒ | j d ƒ } | j d d ƒ | j d d	 ƒ |  j d
 t | d ƒ ƒ d  S(   Nu   Rootu   substitutions   \disposition: \answers	   sunny: 17u   Pageu   comments   I said, "\Root".u   dispositiont   sadu   I said, â€œsunny: 17â€.(   R	   R3   R@   R   R   R–   (   R!   R7   R9   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_implicitP  s    	(   R#   R$   R:   R;   R   R   R   Rš   R›   RŸ   R¡   R¥   R§   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyRˆ     s   						b				t   TestCachingc           B€  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C€  sÊ   t  d ƒ d t _ d „  } | t j _ d „  } | t j _ t j ƒ  yh t	 j
 ƒ  t d d d d ƒt d	 d
 d  ƒ} d | d <d | d <d | d <d | d <t	 j j ƒ  Wn t j ƒ  ‚  n Xd  S(   Ns   === Setup C ===i    c         s€  s'   t  j d 7_ t t t  j ƒ ƒ Vd  S(   Ni   (   R¨   t   indexR   t   unicode(   t   argstr(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt	   arbitrary`  s    c         s€  s7   t  j j j ƒ  t j d 7_ t t t j ƒ ƒ Vd  S(   Ni   (   R   t
   eval_statet   dependenciest   makeUncacheableR¨   R©   R   Rª   (   R«   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   discordd  s    u   dispositionu   stringR'   R(   u   RootR)   s   <<discord/>>u   comments   <<arbitrary/>>s   <<leaf.disposition/>>u   moods   <<cache leaf.disposition/>>u   attitude(   R   R¨   R©   R   t   macrosR¬   R°   R   R/   R   R0   R1   R2   R   R4   R5   R6   (   R!   R¬   R°   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR:   [  s&    
			






c         C€  s   t  j ƒ  d  S(   N(   R   R6   (   R!   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR;   w  s    c         C€  s½   t  j d ƒ } |  j t | d ƒ t | d ƒ ƒ |  j t | d ƒ t | d ƒ ƒ |  j t | d ƒ t | d ƒ ƒ |  j t | d ƒ t | d ƒ ƒ |  j t | d ƒ t | d ƒ ƒ d  S(   Nu   Rootu   commentu   dispositionu   moodu   attitude(   R	   R3   t   assertNotEqualR   R   (   R!   Ra   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_txtz  s    """(   R#   R$   R:   R;   R³   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR¨   Z  s   		t   TestRendererc           B€  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C€  sG   t  j ƒ  5 t j ƒ  t d d d  ƒ} d | d <d | d <Wd  QXd  S(   Nu   RootR)   t   wombatu   commentt   Rootu   name(   R   R/   R   R0   R2   R   (   R!   R7   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR:   ˆ  s
    

c         C€  sS   d d l  m } | j d d g d ƒ |  j i d d 6| j d d g d ƒ ƒ d  S(   Niÿÿÿÿ(   t   rendereru   Rootu   commentu   htmlu   <p>wombat</p>(   t   bazbaseR·   t   start_renderR   t   wait_for_render(   R!   R·   (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_renderŽ  s
    c         C€  sp   d d l  m } | j d d d g d ƒ | j d d d g d ƒ } |  j d | k p_ d | k t | ƒ ƒ d  S(   Niÿÿÿÿ(   R·   u   Rootu   commentu   nameu   html(   R¸   R·   R¹   Rº   R_   t   repr(   R!   R·   t   m(    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   test_two”  s    (   R#   R$   R:   R»   R¾   (    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyR´   ‡  s   		t   __main__t   errort   ignores   cgi.parse_qsl is deprecated(5   t
   __future__R    R   t   ost   patht   dirnamet   realpatht   __file__t   __requires__t   pkg_resourcest   requiret   unittestt   warningst   reR£   R¸   R   R   R   R   R   R   R   R	   t   bazbase.modelt   bazbase.conversionR   R   R   R   t   set_up_for_testst   argvR   t   redbeans.creoleR   t   TestCaseR   R%   RQ   t   redbeans.parserRp   t   redbeans.formatsRq   t   redbeans.tokensRr   R~   Rˆ   R¨   R´   R#   t   simplefiltert   filterwarningst   main(    (    (    sC   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazbase/test.pyt   <module>   s@   *:
"
	p–
8Ê-