ó
<V>Qc           @   sŸ  d  d l  Z  d  d l Z e d k rj e j j e j j e j j e j j e ƒ ƒ ƒ ƒ g e  j e  _ n  d Z d  d l Z e j	 d ƒ d  d l
 Z
 d  d l Z d  d l m Z m Z m Z m Z m Z d  d l m Z m Z d  d l Td  d l Z d  d l Z d e
 j f d „  ƒ  YZ d	 e
 j f d
 „  ƒ  YZ d e
 j f d „  ƒ  YZ d e
 j f d „  ƒ  YZ e d k r›e j d ƒ e j d d ƒ e
 j ƒ  n  d S(   iÿÿÿÿNt   __main__t   Bazki(   t   dbt   modelt   testingt   flavorst	   structure(   t	   to_pythont   render(   t   *t	   TestNamesc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sÌ   t  j j ƒ  t j ƒ  d t j d <t j ƒ  yƒ t	 j
 ƒ  t d d d d ƒt d d d d ƒt d	 d
 d  ƒ} t d d
 | ƒ} d | d <d | d <d | d <t	 j j ƒ  Wn t j ƒ  ‚  n Xd  S(   Ns   /edits   bazki.edit_pathu   nameu   stringt   defaultt    u   substitutionu   macrou   Roott   parentu   Dudes%   Dr. Alex ``Bulldozer'' Anderson, Esq.t   Au   genders"   <<contexteval leaf args content/>>(   t   gamekit   customt   set_upR   t   set_up_for_testst   pylonst   configR   t   begin_transactionR   t   cleart   Propt   Elementt   Nonet   sessiont   flusht   abort_transaction(   t   selft   roott   dude(    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   setUp   s"    






c         C   s   t  j ƒ  d  S(   N(   R   R   (   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   tearDown)   s    c         C   së   t  j d ƒ } d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d	 | d <|  j d | d j ƒ  ƒ d
 | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d  S(   Nu   Dudes
   <<first/>>u   commentt   Alexs	   <<full/>>u'   Dr. Alex â€œBulldozerâ€ Anderson, Esq.s   <<formal/>>s   Dr. Andersons   <<informal/>>s	   <<they/>>s   he/shes	   <<Them/>>s   Him/her(   R   t   gett   assertEqualR   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_standalone,   s    

	



c         C   së   t  j d ƒ } d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d	 | d <|  j d | d j ƒ  ƒ d
 | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d  S(   Nu   Roots   <<Dude>><<first/>><</Dude>>u   commentR"   s   <<Dude>><<full/>><</Dude>>u'   Dr. Alex â€œBulldozerâ€ Anderson, Esq.s   <<Dude>><<formal/>><</Dude>>s   Dr. Andersons   <<Dude>><<informal/>><</Dude>>s   <<Dude>><<they/>><</Dude>>s   he/shes   <<Dude>><<Them/>><</Dude>>s   Him/her(   R   R#   R$   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_in_content<   s    

	



c         C   së   t  j d ƒ } d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d	 | d <|  j d | d j ƒ  ƒ d
 | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d  S(   Nu   Roots   <<Dude first/>>u   commentR"   s   <<Dude full/>>u'   Dr. Alex â€œBulldozerâ€ Anderson, Esq.s   <<Dude formal/>>s   Dr. Andersons   <<Dude informal/>>s   <<Dude they/>>s   he/shes   <<Dude Them/>>s   Him/her(   R   R#   R$   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_in_argstrL   s    

	



c         C   sÑ   t  j d ƒ } d | d <d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d	 | d <|  j d
 | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d | d <|  j d | d j ƒ  ƒ d  S(   Nu   Dudet   Mu   gendersš   My <<uncle/>>, my dad's <<sibling/>>, crashed <<their/>> car which <<they/>> bought <<themself/>> when a \mfn{Werewolf}{Mongoose}{Fish} cheated <<them/>>.u   commentub   My uncle, my dadâ€™s brother, crashed his car which he bought himself when a Werewolf cheated him.t   Fua   My aunt, my dadâ€™s sister, crashed her car which she bought herself when a Mongoose cheated her.t   Nua   My uncle/aunt, my dadâ€™s sibling, crashed its car which it bought itself when a Fish cheated it.t   ?u„   My uncle/aunt, my dadâ€™s sibling, crashed his/her car which he/she bought himself/herself when a Werewolf/Mongoose cheated him/her.t   Sun   My uncle/aunt, my dadâ€™s sibling, crashed eir car which ey bought emself when a Werewolf/Mongoose cheated em.(   R   R#   R$   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_gender\   s    





c         C   sw   t  d d ƒ t j d ƒ } t j d ƒ } d | d <|  j d | d j ƒ  ƒ d | d <|  j d	 | d j ƒ  ƒ d  S(
   Nu   contactsu   labeledrefsu   Rootu   Dudes   \Dude{Yourself: \Dude{}.}ur    * Dr. Alex â€œBulldozerâ€ Anderson, Esq. (Dude)@</edit/Dude>: Yourself: Dr. Alex â€œBulldozerâ€ Anderson, Esq..s\   <<foreach leaf.contacts c,desc ifNone='* None.'>>  * **<<c.name/>>**: <<desc/>>
<</foreach>>u   commentub     * *Dr. Alex â€œBulldozerâ€ Anderson, Esq.*: Yourself: Dr. Alex â€œBulldozerâ€ Anderson, Esq..
(   R   R   R#   R$   R   (   R   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_labeledrefsj   s    

(	   t   __name__t
   __module__R    R!   R%   R&   R'   R-   R.   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR
      s   						t   TestProductionc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s  t  j ƒ  t j ƒ  yî t j ƒ  t d d d d ƒt d d d d ƒt d d d d ƒt d d d d ƒt d d d d ƒt d	 d d d ƒt d
 d d d ƒt d d d  ƒ} d | d <d | d <d | d <d | d <d | d <d | d
 <t j	 j
 ƒ  Wn t j ƒ  ‚  n Xd  S(   Nu   nameu   stringR   R   u   topleftu   toprightu
   bottomleftu   bottomrightu
   badgecoloru   productu   textu   RootR   t   Bobt   TLt   TRt   BLt   BRt   Whatever(   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR    w   s,    









c         C   s   t  j ƒ  d  S(   N(   R   R   (   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR!   Ž   s    c         C   sD   t  j d ƒ } d | d <d | d <|  j d | d j d ƒ ƒ d  S(   Nu   Roott   whiteu
   badgecolorsG   <<badge leaf color=leaf.badgecolor>>
  == <<leaf.name />> ==
<</badge>>u   comments   <div class="badget   html(   R   R#   t   assertInR   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt
   test_badge‘   s    

c         C   s:   t  j d ƒ } d | d <|  j d | d j d ƒ ƒ d  S(   Nu   Roots%   <<sheet leaf>>
* Foo
* Bar
<</sheet>>u   comments   \end{itemize}



\end{sheet}t   tex(   R   R#   R:   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt
   test_sheet™   s    
	c         C   s.   t  j d ƒ } d | d <| d j d ƒ d  S(   Nu   Roots4   <<foreach Root r>>
  <<cache r.name />>
<</foreach>>u   commentR9   (   R   R#   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_printing¢   s    
(   R/   R0   R    R!   R;   R=   R>   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR1   v   s
   					t   TestGetUrlsc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sk  t  j j ƒ  t j ƒ  d t j d <t  j ƒ  |  _ t  j	 d ƒ |  _
 t j ƒ  yt j ƒ  t d d d d ƒt d d d d ƒt d	 d d d ƒt d
 d d d ƒt d d d d ƒt d d d d ƒt d d d d ƒt d d d d ƒt d d d  ƒ} d | d <d | d <d | d	 <d | d
 <d | d <d | d <t j j ƒ  Wn t j ƒ  ‚  n Xd  S(   Ns   /edits   bazki.edit_paths   /produ   nameu   stringR   R   u   topleftu   toprightu
   bottomleftu   bottomrightu
   badgecoloru   usernameu   productu   textu   RootR   R2   R3   R4   R5   R6   R7   (   R   R   R   R   R   R   R   t   Gettert   gettert
   ProdGettert   prod_getterR   R   R   R   R   R   R   R   R   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR    ª   s6    









c         C   s%   t  j ƒ  d d l m } | j 2d  S(   Niÿÿÿÿ(   t   getting(   R   R   t   bazkiRD   t   registered_getters(   R   RD   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR!   Æ   s    
c         C   s½   t  j d ƒ } t  d d | ƒ} d | d <t  d d | ƒ} d | d <d | d	 <| d	 j d
 ƒ |  j d | d	 j d
 ƒ ƒ |  j d | d	 j d
 ƒ ƒ |  j d | d	 j d
 ƒ ƒ d  S(   Nu   Rootu   FredR   t   fredu   usernameu   Georget   georges^   [[get:Root]]

<<let owner=Fred>>[[get:Root]]<</let>>

<<let owner=George>>[[get:Root]]<</let>>u   commentR9   s   /_/Bobs	   /fred/Bobs   /george/Bob(   R   R#   R   R:   (   R   R   RG   RH   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_owned_get_urlsË   s    


c         C   s¼   t  d d ƒ t j d ƒ } | j d ƒ } | j d d ƒ | j d d ƒ |  j t j | d g ƒ g t | d ƒ ƒ | j d	 d
 ƒ |  j d t	 | d	 ƒ ƒ |  j d t	 | d ƒ ƒ d  S(   Nu   fishu
   referencesu   Rootu   Pageu   names   Page: \1s   [[Page/Tree]]u   Treeu   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>u
   Page: Treeu-    * Page: Tree@</prod/193cfc9b/_/%2BPage/Tree>(
   R   R   t   get_elementt   create_childt   set_propR$   R   t	   ReferenceR   R   (   R   R   t   page(    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_arg_referencesÛ   s    		c         C   s¨  t  d d ƒ t j d ƒ } | j d ƒ } | j d d ƒ | j d d ƒ | j d	 d
 ƒ | j d d ƒ |  j t j | d g ƒ t j | d g ƒ g t | d ƒ ƒ | j d d ƒ |  j d t	 | d ƒ ƒ |  j d t	 | d ƒ ƒ |  j d t	 | d d ƒ ƒ |  j d t	 | d d ƒ ƒ d d l
 m } |  j d | j d d | d i i d d 6d 6d t ƒƒ |  j d | j d d | d i i d d 6d 6d t ƒƒ d  S(   Nu   fishu
   referencesu   Rootu   Pageu   names   Page: <<1/>>u   dreams   Name: <<leaf.name/>>u   substitutions   <<link Page "/" content />>s   \Page{Tree}, \Page{PB&J}u   Treeu   PB&Ju   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>u   Page: TreePage: PB&Ju]    * Page: Tree@</prod/193cfc9b/_/%2BPage/Tree>
 * Page: PB&J@</prod/193cfc9b/_/%2BPage/PB%26J>u”   \begin{itemize}
\item \href{/prod/193cfc9b/\_/\%2BPage/Tree}{Page: Tree}
\item \href{/prod/193cfc9b/\_/\%2BPage/PB\%26J}{Page: PB\&J}
\end{itemize}
R<   u   Page: TreePage: PB\&Jiÿÿÿÿ(   RD   s
   Page: Wisht   txtu   Wishu   1t   lett   set_content_types   Name: Page: Wish(   R   R   RJ   RK   RL   R$   R   RM   R   R   RE   RD   R#   t   False(   R   R   RN   RD   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_arg_references2é   s8    			
	c         C   sô   t  d d ƒ t j d ƒ } | j d ƒ } | j d d ƒ | j d d ƒ | j d	 d
 ƒ | j d d ƒ |  j t j | d d g ƒ t j | d d g ƒ g t | d ƒ ƒ | j d d ƒ |  j d t	 | d ƒ ƒ |  j d t	 | d ƒ ƒ d  S(   Nu   fishu
   referencesu   Rootu   Pageu   names   Page: <<1/>>, not <<2/>>u   dreams   Name: <<leaf.name/>>u   substitutions   <<link Page "/" _1 "/" _2 />>s$   \Page{Tree}{Grass}, \Page{PB&J}{Ham}u   Treeu   Grassu   PB&Ju   Hamu   comments.   <<foreach Root.fish f>><<f.name/>><</foreach>>u(   Page: Tree, not GrassPage: PB&J, not Hamu{    * Page: Tree, not Grass@</prod/193cfc9b/_/%2BPage/Tree/Grass>
 * Page: PB&J, not Ham@</prod/193cfc9b/_/%2BPage/PB%26J/Ham>(
   R   R   RJ   RK   RL   R$   R   RM   R   R   (   R   R   RN   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_multi_arg_references  s     			(   R/   R0   R    R!   RI   RO   RT   RU   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR?   ©   s   					#t
   TestMacrosc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s§   t  j j ƒ  t j ƒ  t  j ƒ  |  _ t  j d ƒ |  _ t	 j
 ƒ  yJ t j ƒ  t d d d d ƒt d d d  ƒ} d | d <t j j ƒ  Wn t	 j ƒ  ‚  n Xd  S(	   Ns   /produ   productu   textR   R   u   RootR   R7   (   R   R   R   R   R   R@   RA   RB   RC   R   R   R   R   R   R   R   R   R   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR      s    




c         C   s%   t  j ƒ  d d l m } | j 2d  S(   Niÿÿÿÿ(   RD   (   R   R   RE   RD   RF   (   R   RD   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyR!   .  s    
c         C   sW   t  j d ƒ } d | d <|  j d | d j d ƒ ƒ |  j d | d j d ƒ ƒ d  S(   Nu   Roots.   \cenquote{Foo}{Bar}
\bigquote{Baz}{Quux}

Textu   productuŽ   <center><i>Foo</i></center><p class="right"><i>Bar</i></p>


<p class="noindent"><i>Baz</i></p>

<p class="right"><i>Quux</i></p>

<p>Text</p>R9   u¢   \begin{thincenter}
{\em Foo}
\end{thincenter}\begin{thinright}
{\em Bar}
\end{thinright} 

\noindent
{\em Baz}

\begin{thinright}
{\em Quux}
\end{thinright}

TextR<   (   R   R#   t   assertEqualsR   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   test_quotes3  s
    
c         C   sŠ   t  j d ƒ } d | d <d | d <d | d <d | d	 <d
 | d <d | d <d | d <d | d <d | d <|  j d | d j d ƒ ƒ d  S(   Nu   Roott   Descu   descR   u   topleftt   Bu   toprightt   Cu
   bottomleftt   Du   bottomrightt   keyu   keyt   blurbu   blurbs³   <<sign leaf "Name" size="Big">>
  <<owner.desc />>

  To flip over, find <<owner.key/>>.

  <<flip/>>

  <<owner.desc />>

  To go on this Quest, find ""<<owner.key/>>".
<</sign>>u	   somethings$   <<cache leaf.something owner=Root/>>u   productu“   \headfoot{A}{B}{C}{D}\Sign[\Big]{Name}{}{   Desc

  To flip over, find key.



}{Name}{

Desc

  To go on this Quest, find â€œâ€œkeyâ€. 

}{blurb}R<   (   R   R#   RW   R   (   R   R   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt	   test_signI  s    








(   R/   R0   R    R!   RX   R_   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyRV     s   			t   errort   ignores   cgi.parse_qsl is deprecated(    t   syst   osR/   t   patht   dirnamet   realpatht   __file__t   __requires__t   pkg_resourcest   requiret   unittestt   warningst   bazbaseR   R   R   R   R   t   bazbase.conversionR   R   t   bazbase.modelR   R   t   TestCaseR
   R1   R?   RV   t   simplefiltert   filterwarningst   main(    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/gameki/test/macros.pyt   <module>   s(   +(
a3uO