
    w:i"                         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 d dlmZ d dl	m
Z
mZ  G d dej                  Z G d dej                  Zd	 Zed
k    r ej        d           dS dS )    N)TemplateSyntaxError)TemplateLoader)OldTextTemplateNewTextTemplatec                   T    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )OldTextTemplateTestCase#Tests for text template processing.c                 :    t          j        d          | _        d S Nmarkup_test)suffixtempfilemkdtempdirnameselfs    W/var/www/html/trac/venv/lib/python3.11/site-packages/genshi/template/tests/test_text.pysetUpzOldTextTemplateTestCase.setUp       '}===    c                 8    t          j        | j                   d S Nshutilrmtreer   r   s    r   tearDownz OldTextTemplateTestCase.tearDown       dl#####r   c                     t          d          }|                     d|                                                    d                      d S )Nz	\#escapedz#escapedencodingr   assertEqualgeneraterenderr   tmpls     r   test_escapingz%OldTextTemplateTestCase.test_escaping"   sD    |,,T]]__%;%;T%;%J%JKKKKKr   c                     t          d          }|                     d|                                                    d                      d S )Nz## a comment r    r"   r&   s     r   test_commentz$OldTextTemplateTestCase.test_comment&   sD    ~..T]]__33T3BBCCCCCr   c                     t          d          }|                     d|                                                    d                      d S )Nz\## escaped commentz## escaped commentr    r"   r&   s     r   test_comment_escapingz-OldTextTemplateTestCase.test_comment_escaping*   sV    566-///>>	@ 	@ 	@ 	@ 	@r   c                     t          d          }|                     d|                    d                              d                      d S )Nz4
        #if foo
          bar
        #end 'if foo'
Ffoor    r"   r&   s     r   test_end_with_argsz*OldTextTemplateTestCase.test_end_with_args/   sS         	t}}}77>>>MMNNNNNr   c                     d                     d          }t          |d          }|                     d|                    dd                              d                      d S N
   $fooö$barz
iso-8859-1r       xöyxyr1   bar)encoder   r#   r$   r%   r   textr'   s      r   test_latin1_encodedz+OldTextTemplateTestCase.test_latin1_encoded6   t    %%l33tl;;;3C88???NN	P 	P 	P 	P 	Pr   c                     d}t          |          }|                     d|                    dd                              d                      d S Nr5   r6   r7   r8   r9   r    r"   r<   s      r   test_unicode_inputz*OldTextTemplateTestCase.test_unicode_input<   a    t$$3C88???NN	P 	P 	P 	P 	Pr   c                     t          d          }|                     d|                    t          d                                        d                      d S )NzHYour items:

        #for item in items
          * ${item}
        #endz7Your items:

          * 0
          * 1
          * 2
   itemsr    r   r#   r$   ranger%   r&   s     r   test_empty_lines1z)OldTextTemplateTestCase.test_empty_lines1B   si        
 	 
 
]]q]""))4)88	: 	: 	: 	: 	:r   c                     t          d          }|                     d|                    t          d                                        d                      d S )NzIYour items:

        #for item in items
          * ${item}

        #endz:Your items:

          * 0

          * 1

          * 2

rE   rF   r    rH   r&   s     r   test_empty_lines2z)OldTextTemplateTestCase.test_empty_lines2O   si         	  
]]q]""))4)88	: 	: 	: 	: 	:r   c                    t          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          | j        g          }|	                    dt                    }|                     d|                                                    d 	                     d S )
N	tmpl1.txtwbz	Included
utf-8	tmpl2.txtz~----- Included data below this line -----
            #include tmpl1.txt
            ----- Included data above this line -----clszh----- Included data below this line -----
Included
            ----- Included data above this line -----r    )openospathjoinr   writer;   closer   loadr   r#   r$   r%   r   file1file2loaderr'   s        r   test_includez$OldTextTemplateTestCase.test_include`   sK   RW\\$,<<dCC	KK,,W55666KKMMMMEKKMMMMRW\\$,<<dCC	KK 99?J J J KKMMMMEKKMMMM//{{;O{<< 9 ///>>	@ 	@ 	@ 	@ 	@   (A2 2B?(C< <DN)__name__
__module____qualname____doc__r   r   r(   r+   r-   r2   r>   rB   rJ   rL   r_    r   r   r   r      s        --> > >$ $ $L L LD D D@ @ @
O O OP P PP P P: : :: : :"@ @ @ @ @r   r   c                   x    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )NewTextTemplateTestCaser	   c                 :    t          j        d          | _        d S r   r   r   s    r   r   zNewTextTemplateTestCase.setUpz   r   r   c                 8    t          j        | j                   d S r   r   r   s    r   r   z NewTextTemplateTestCase.tearDown}   r   r   c                     t          d          }|                     d|                                                    d                      d S )Nz\{% escaped %}z{% escaped %}r    r   r#   r$   r%   r&   s     r   r(   z%NewTextTemplateTestCase.test_escaping   sU    011///>>	@ 	@ 	@ 	@ 	@r   c                     t          d          }|                     d|                                                    d                      d S )Nz{# a comment #}r*   r    rk   r&   s     r   r+   z$NewTextTemplateTestCase.test_comment   sE    011T]]__33T3BBCCCCCr   c                     t          d          }|                     d|                                                    d                      d S )Nz\{# escaped comment #}z{# escaped comment #}r    rk   r&   s     r   r-   z-NewTextTemplateTestCase.test_comment_escaping   sV    8990///>>	@ 	@ 	@ 	@ 	@r   c                     t          d          }|                     d|                    d                              d                      d S )Nz&
{% if foo %}
  bar
{% end 'if foo' %}r/   Fr0   r    rk   r&   s     r   r2   z*NewTextTemplateTestCase.test_end_with_args   sS         	t}}}77>>>MMNNNNNr   c                     d                     d          }t          |d          }|                     d|                    dd                              d                      d S r4   )r;   r   r#   r$   r%   r<   s      r   r>   z+NewTextTemplateTestCase.test_latin1_encoded   r?   r   c                     d}t          |          }|                     d|                    dd                              d                      d S rA   rk   r<   s      r   rB   z*NewTextTemplateTestCase.test_unicode_input   rC   r   c                     t          d          }|                     d|                    t          d                                        d                      d S )Nz9Your items:

{% for item in items %}  * ${item}
{% end %}zYour items:

  * 0
  * 1
  * 2
rE   rF   r    r   r#   r$   rI   r%   r&   s     r   rJ   z)NewTextTemplateTestCase.test_empty_lines1   si        
 	 
 
]]q]""))4)88	: 	: 	: 	: 	:r   c                     t          d          }|                     d|                    t          d                                        d                      d S )Nz?Your items:

{% for item in items %}\
  * ${item}
{% end %}z$Your items:

  * 0
  * 1
  * 2
rE   rF   r    rr   r&   s     r   test_empty_lines1_with_crlfz3NewTextTemplateTestCase.test_empty_lines1_with_crlf   sn         	  ]]q]**1141@@		B 	B 	B 	B 	Br   c                     t          d          }|                     d|                    t          d                                        d                      d S )Nz:Your items:

{% for item in items %}  * ${item}

{% end %}z"Your items:

  * 0

  * 1

  * 2

rE   rF   r    rr   r&   s     r   rL   z)NewTextTemplateTestCase.test_empty_lines2   si         	  
]]q]""))4)88	: 	: 	: 	: 	:r   c                     t          d          }|                     d|                    t          d                                        d                      d S )NzAYour items:

{% for item in items %}\
  * ${item}

{% end %}z*Your items:

  * 0

  * 1

  * 2

rE   rF   r    rr   r&   s     r   test_empty_lines2_with_crlfz3NewTextTemplateTestCase.test_empty_lines2_with_crlf   si         	  	E!HH%%,,d,;;	= 	= 	= 	= 	=r   c                 $    t          d           dS )zw
        Verify that a code block with trailing space does not cause a syntax
        error (see ticket #127).
        z?
          {% python
            bar = 42
          $}
        N)r   r   s    r   test_exec_with_trailing_spacez5NewTextTemplateTestCase.test_exec_with_trailing_space   s%    
 	  	 	 	 	 	r   c                     t          d          }|                     d|                                                    d                      d S )NzQ{% python from datetime import timedelta %}
        ${timedelta(days=2)}
        z!
        2 days, 0:00:00
        r    rk   r&   s     r   test_exec_importz(NewTextTemplateTestCase.test_exec_import   s[         	 ]]__##T#22	4 	4 	4 	4 	4r   c                     t          d          }|                     d|                                                    d                      d S )NzW{% python
        def foo():
            return 42
        %}
        ${foo()}
        z
        42
        r    rk   r&   s     r   test_exec_defz%NewTextTemplateTestCase.test_exec_def   s[         	 ]]__##T#22	4 	4 	4 	4 	4r   c                    t          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          | j        g          }|	                    dt                    }|                     d|                                                    d 	                     d S )
NrN   rO   IncludedrP   rQ   zk----- Included data below this line -----
{% include tmpl1.txt %}
----- Included data above this line -----rR   z\----- Included data below this line -----
Included
----- Included data above this line -----r    rT   rU   rV   rW   r   rX   r;   rY   r   rZ   r   r#   r$   r%   r[   s        r   r_   z$NewTextTemplateTestCase.test_include   sH   RW\\$,<<dCC	KK**733444KKMMMMEKKMMMMRW\\$,<<dCC	KK --3VG__> > > KKMMMMEKKMMMM//{{;O{<< - ///>>	@ 	@ 	@ 	@ 	@r`   c                    t          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          t          j                            | j        d          d          }	 |                    d                    d                     |                                 n# |                                 w xY wt          | j        g          }|	                    dt                    }|                     d|                                                    d 	                     d S )
NrN   rO   r   rP   rQ   z----- Included data below this line -----
    {% include ${'%s.txt' % ('tmpl1',)} %}
    ----- Included data above this line -----rR   zd----- Included data below this line -----
    Included
    ----- Included data above this line -----r    r   r[   s        r   test_include_exprz)NewTextTemplateTestCase.test_include_expr  sK   bgll4<==tDD
[[++G44555[[]]]]U[[]]]]bgll4<==tDD
[[ 117B B B [[]]]]U[[]]]] $,00K_==			 1 --//00$0??
A 
A 
A 
A 
Ar`   N)ra   rb   rc   rd   r   r   r(   r+   r-   r2   r>   rB   rJ   rt   rL   rw   ry   r{   r}   r_   r   re   r   r   rg   rg   w   s6       --> > >$ $ $@ @ @
D D D@ @ @
O O OP P PP P P: : :B B B: : :"= = = 	 	 	4 4 4	4 	4 	4@ @ @,A A A A Ar   rg   c                  j   t          j                    } |                     t          j        t
          j                             |                     t           j                            t                               |                     t           j                            t                               | S r   )unittest	TestSuiteaddTestdoctestDocTestSuiter   rb   defaultTestLoaderloadTestsFromTestCaser   rg   )suites    r   r   r   '  s}      E	MM'&'ABBCCC	MM(,BBCZ[[\\\	MM(,BBCZ[[\\\Lr   __main__r   )defaultTest)r   rU   r   r   r   genshi.template.baser   genshi.template.loaderr   genshi.template.textr   r   TestCaser   rg   r   ra   mainre   r   r   <module>r      s+    				    4 4 4 4 4 4 1 1 1 1 1 1 A A A A A A A A[@ [@ [@ [@ [@h/ [@ [@ [@|mA mA mA mA mAh/ mA mA mA`   zHMg&&&&&& r   