Ë
    êmximH  ã                   ó.  — d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlZ G d„ dej                  «      Z G d„ dej                  «      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Zy)é    N)Úutf8Ú
native_strÚ
to_unicode)ÚTemplateÚ
DictLoaderÚ
ParseErrorÚLoader)Ú
ObjectDictc                   óÀ   — 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„ Zd„ Zd„ Z ej2                  d«      d„ «       Zd„ Zy)ÚTemplateTestc                 ó^   — t        d«      }| j                  |j                  d¬«      d«       y ©NzHello {{ name }}!ÚBen©Únameó
   Hello Ben!©r   ÚassertEqualÚgenerate©ÚselfÚtemplates     úQ/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/template_test.pyÚtest_simplezTemplateTest.test_simple   s+   € ÜÐ/Ó0ˆØ×Ñ˜×*Ñ*°Ð*Ó6¸ÕFó    c                 óp   — t        d«      }| j                  |j                  t        d«      ¬«      d«       y r   ©r   r   r   r   r   s     r   Ú
test_byteszTemplateTest.test_bytes   s/   € ÜÐ/Ó0ˆØ×Ñ˜×*Ñ*´°U³Ð*Ó<¸mÕLr   c                 óZ   — t        d«      }| j                  |j                  «       d«       y )Nz2 + 2 = {{ 2 + 2 }}s	   2 + 2 = 4r   r   s     r   Útest_expressionszTemplateTest.test_expressions   s&   € ÜÐ1Ó2ˆØ×Ñ˜×*Ñ*Ó,¨lÕ;r   c                 óp   — t        d«      }| j                  |j                  t        d«      ¬«      d«       y )Nz Hello{# TODO i18n #} {{ name }}!r   r   r   r   r   s     r   Útest_commentzTemplateTest.test_comment   s/   € ÜÐ>Ó?ˆØ×Ñ˜×*Ñ*´°U³Ð*Ó<¸mÕLr   c                 ó~   — t        dddœ«      }| j                  |j                  d«      j                  «       d«       y )Nz%{% include "header.html" %}
body textzheader text)ú
index.htmlzheader.htmlr$   s   header text
body text©r   r   Úloadr   ©r   Úloaders     r   Útest_includezTemplateTest.test_include   s?   € ÜàFØ,ñó
ˆð 	×ÑØ�K‰K˜Ó%×.Ñ.Ó0Ð2Kõ	
r   c                 ó~   — t        dddœ«      }| j                  |j                  d«      j                  «       d«       y )Nzj<title>{% block title %}default title{% end %}</title>
<body>{% block body %}default body{% end %}</body>
zb{% extends "base.html" %}
{% block title %}page title{% end %}
{% block body %}page body{% end %}
)ú	base.htmlú	page.htmlr,   s1   <title>page title</title>
<body>page body</body>
r%   r'   s     r   Útest_extendszTemplateTest.test_extends(   sC   € Üððñ
ó
ˆð 	×ÑØ�K‰K˜Ó$×-Ñ-Ó/ØBõ	
r   c                 ó€   — t        ddddœ«      }| j                  |j                  d«      j                  «       d«       y )Nz{% include '2.html' %}z{% include '../b/3.html' %}Úok)úa/1.htmlza/2.htmlzb/3.htmlr0   s   okr%   r'   s     r   Útest_relative_loadzTemplateTest.test_relative_load;   s>   € Üà4Ø9Ø ñó
ˆð 	×Ñ˜Ÿ™ ZÓ0×9Ñ9Ó;¸UÕCr   c                 ó¨  — | j                  t        d„ «       | j                  t        d„ «       | j                  t        d«      j	                  «       d«       | j                  t        d«      j	                  «       d«       | j                  t        d«      j	                  «       d«       | j                  t        d	«      j	                  «       d
«       y )Nc                  ó   — t        d«      S )Nz{{©r   © r   r   ú<lambda>z,TemplateTest.test_escaping.<locals>.<lambda>F   ó
   € ¬h°t«n€ r   c                  ó   — t        d«      S )Nz{%r4   r5   r   r   r6   z,TemplateTest.test_escaping.<locals>.<lambda>G   r7   r   z{{!s   {{z{%!s   {%z{#!s   {#z{{ 'expr' }} {{!jquery expr}}s   expr {{jquery expr}})ÚassertRaisesr   r   r   r   ©r   s    r   Útest_escapingzTemplateTest.test_escapingE   sž   € Ø×Ñœ*Ñ&<Ô=Ø×Ñœ*Ñ&<Ô=Ø×Ñœ %›×1Ñ1Ó3°UÔ;Ø×Ñœ %›×1Ñ1Ó3°UÔ;Ø×Ñœ %›×1Ñ1Ó3°UÔ;Ø×ÑÜÐ4Ó5×>Ñ>Ó@Ø#õ	
r   c                 ó~   — t        t        d«      «      }| j                  |j                  «       t        d«      «       y )Nõ   Ã©©r   r   r   r   r   s     r   Útest_unicode_templatez"TemplateTest.test_unicode_templateP   s-   € ÜœD ›NÓ+ˆØ×Ñ˜×*Ñ*Ó,¬d°8«nÕ=r   c                 ó~   — t        t        d«      «      }| j                  |j                  «       t        d«      «       y )Nu
   {{ "Ã©" }}r=   r>   r   s     r   Útest_unicode_literal_expressionz,TemplateTest.test_unicode_literal_expressionT   s1   € ô
 œDÐ!1Ó2Ó3ˆØ×Ñ˜×*Ñ*Ó,¬d°8«nÕ=r   c                 ó†   — t        ddidd„ i¬«      }| j                  |j                  d«      j                  «       d«       y )Nú	test.htmlz{{ inc(5) }}Úincc                 ó   — | dz   S )Né   r5   ©Úxs    r   r6   z4TemplateTest.test_custom_namespace.<locals>.<lambda>^   s
   € ÀqÈ1Áu€ r   ©Ú	namespaceó   6r%   r'   s     r   Útest_custom_namespacez"TemplateTest.test_custom_namespace\   s?   € ÜØ˜.Ð)°e¹_Ð5Mô
ˆð 	×Ñ˜Ÿ™ [Ó1×:Ñ:Ó<¸dÕCr   c                 óv   — d„ }t        t        d«      «      }| j                  |j                  |¬«      d«       y )Nc                 ó"   — | j                  «       S ©N©Úupper©Úss    r   rQ   z&TemplateTest.test_apply.<locals>.upperc   s   € Ø—7‘7“9Ðr   z{% apply upper %}foo{% end %}rP   s   FOOr>   ©r   rQ   r   s      r   Ú
test_applyzTemplateTest.test_applyb   s7   € ò	ô œDÐ!@ÓAÓBˆØ×Ñ˜×*Ñ*°Ð*Ó7¸Õ@r   c                 óˆ   — d„ }t        t        d«      «      }| j                  |j                  |¬«      t        d«      «       y )Nc                 ó4   — t        | «      j                  «       S rO   )r   rQ   rR   s    r   rQ   z.TemplateTest.test_unicode_apply.<locals>.upperj   s   € Ü˜a“=×&Ñ&Ó(Ð(r   õ    {% apply upper %}foo Ã©{% end %}rP   õ   FOO Ã‰r>   rT   s      r   Útest_unicode_applyzTemplateTest.test_unicode_applyi   s<   € ò	)ô œDÐ!GÓHÓIˆØ×Ñ˜×*Ñ*°Ð*Ó7¼¸lÓ9KÕLr   c                 óˆ   — d„ }t        t        d«      «      }| j                  |j                  |¬«      t        d«      «       y )Nc                 óF   — t        t        | «      j                  «       «      S rO   )r   r   rQ   rR   s    r   rQ   z,TemplateTest.test_bytes_apply.<locals>.upperq   s   € Üœ
 1›×+Ñ+Ó-Ó.Ð.r   rX   rP   rY   r>   rT   s      r   Útest_bytes_applyzTemplateTest.test_bytes_applyp   s<   € ò	/ô œDÐ!GÓHÓIˆØ×Ñ˜×*Ñ*°Ð*Ó7¼¸lÓ9KÕLr   c                 ó´   — t        t        d«      «      }| j                  |j                  d¬«      d«       | j                  |j                  d¬«      d«       y )Nz&{% if x > 4 %}yes{% else %}no{% end %}é   rG   s   yesé   s   nor>   r   s     r   Útest_ifzTemplateTest.test_ifw   sN   € ÜœDÐ!IÓJÓKˆØ×Ñ˜×*Ñ*¨QÐ*Ó/°Ô8Ø×Ñ˜×*Ñ*¨QÐ*Ó/°Õ7r   c                 ól   — t        t        d«      «      }| j                  |j                  «       d«       y )Nz {% if True %}{% else %}{% end %}r   r>   r   s     r   Útest_if_empty_bodyzTemplateTest.test_if_empty_body|   s+   € ÜœDÐ!CÓDÓEˆØ×Ñ˜×*Ñ*Ó,¨cÕ2r   c                 ó´   — t        t        d«      «      }| j                  |j                  d¬«      d«       | j                  |j                  d¬«      d«       y )Nzb{% try %}
try{% set y = 1/x %}
{% except %}-except
{% else %}-else
{% finally %}-finally
{% end %}rF   rG   s   
try
-else
-finally
r   s   
try-except
-finally
r>   r   s     r   Útest_tryzTemplateTest.test_try€   sY   € ÜÜðóó	
ˆð 	×Ñ˜×*Ñ*¨QÐ*Ó/Ð1LÔMØ×Ñ˜×*Ñ*¨QÐ*Ó/Ð1LÕMr   c                 ól   — t        t        d«      «      }| j                  |j                  «       d«       y )Nz{% comment blah blah %}foos   foor>   r   s     r   Útest_comment_directivez#TemplateTest.test_comment_directiveŽ   s+   € ÜœDÐ!=Ó>Ó?ˆØ×Ñ˜×*Ñ*Ó,¨fÕ5r   c                 ó®   — t        t        d«      «      }|j                  «       }dj                  |j	                  «       «      }| j                  |d«       y )Nz�{% for i in range(10) %}
    {% if i == 2 %}
        {% continue %}
    {% end %}
    {{ i }}
    {% if i == 6 %}
        {% break %}
    {% end %}
{% end %}r   s   013456)r   r   r   ÚjoinÚsplitr   )r   r   Úresults      r   Útest_break_continuez TemplateTest.test_break_continue’   sM   € ÜÜð	óó
ˆð ×"Ñ"Ó$ˆà—‘˜&Ÿ,™,›.Ó)ˆØ×Ñ˜ Õ+r   c                 ó„   — | j                  t        d¬«      5  t        t        d«      «       d d d «       y # 1 sw Y   y xY w)NúDid not get expected exception©Úmsgz{% break %}©r9   r   r   r   r:   s    r   Útest_break_outside_loopz$TemplateTest.test_break_outside_loop¦   s8   € Ø×ÑœzÐ/OÐÓPñ 	*Ü”T˜-Ó(Ô)÷	*÷ 	*ñ 	*úó   ˜6¶?c                 ó„   — | j                  t        d¬«      5  t        t        d«      «       d d d «       y # 1 sw Y   y xY w)Nrn   ro   z={% for i in [] %}{% apply foo %}{% break %}{% end %}{% end %}rq   r:   s    r   Útest_break_in_applyz TemplateTest.test_break_in_applyª   s>   € ð ×ÑœzÐ/OÐÓPñ 	ÜÜÐTÓUô÷	÷ 	ñ 	úrs   zno testable future importsc                 ó~   — | j                  dd«       t        d«      }| j                  |j                  «       d«       y )Ng      à?z{{ 1 / 2 }}Ú0)r   r   r   r   s     r   Útest_no_inherit_futurez#TemplateTest.test_no_inherit_future²   s7   € ð 	×Ñ˜ Ô$ä˜MÓ*ˆØ×Ñ˜×*Ñ*Ó,¨cÕ2r   c                 ó|   — t        ddi«      }| j                  |j                  d«      j                  «       d«       y )Nu
   tÃ©st.htmlÚhellos   hellor%   r'   s     r   Útest_non_ascii_namez TemplateTest.test_non_ascii_name¾   s5   € ÜÐ-¨wÐ7Ó8ˆØ×Ñ˜Ÿ™Ð%5Ó6×?Ñ?ÓAÀ8ÕLr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r    r"   r)   r-   r1   r;   r?   rA   rL   rU   rZ   r]   ra   rc   re   rg   rl   rr   ru   ÚunittestÚskiprx   r{   r5   r   r   r   r      sš   „ òGòMò<òMò	
ò
ò&Dò	
ò>ò>òDòAòMòMò8ò
3òNò6ò,ò(*òð €X‡]�]Ð/Ó0ñ	3ó 1ð	3óMr   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚStackTraceTestc                 óè   — t        ddi«      }	 |j                  d«      j                  «        | j                  d«       y # t        $ r( | j                  dt        j                  «       v «       Y y w xY w)NrC   zone
two{{1/0}}
three
        údid not get expected exceptionú# test.html:2©r   r&   r   ÚfailÚZeroDivisionErrorÚ
assertTrueÚ	tracebackÚ
format_excr'   s     r   Ú!test_error_line_number_expressionz0StackTraceTest.test_error_line_number_expressionÄ   ól   € Üàð ðó
ˆð	GØ�K‰K˜Ó$×-Ñ-Ô/Ø�I‰IÐ6Õ7øÜ ò 	GØ�O‰O˜O¬y×/CÑ/CÓ/EÐEÖFð	Gúó   �0A  Á .A1Á0A1c                 óè   — t        ddi«      }	 |j                  d«      j                  «        | j                  d«       y # t        $ r( | j                  dt        j                  «       v «       Y y w xY w)NrC   z'one
two{%if 1/0%}
three{%end%}
        r„   r…   r†   r'   s     r   Ú test_error_line_number_directivez/StackTraceTest.test_error_line_number_directiveÓ   r�   rŽ   c                 ó@  ‡— d Šˆfd„}t        dddœdt        |¬«      i¬«      Š	 ‰j                  d«      j                  «        | j	                  d	«       y # t
        $ r= t        j                  «       }| j                  d
|v «       | j                  d|v «       Y y w xY w)Nc                 óN   •— ‰€J ‚ ‰j                  | «      j                  di |¤ŽS )Nr5   ©r&   r   )ÚpathÚkwargsr(   s     €r   Úload_generatezCStackTraceTest.test_error_line_number_module.<locals>.load_generateå   s.   ø€ ØÐ%Ð%Ð%Ø-�6—;‘;˜tÓ$×-Ñ-Ñ7°Ñ7Ð7r   z!{% module Template('sub.html') %}ú{{1/0}}©r+   úsub.htmlÚ_tt_modulesr4   rI   r+   r„   ú# base.html:1z# sub.html:1)	r   r
   r&   r   r‡   rˆ   rŠ   r‹   r‰   )r   r–   Ú	exc_stackr(   s      @r   Útest_error_line_number_modulez,StackTraceTest.test_error_line_number_moduleâ   s”   ø€ Øˆô	8ô Ø=È9ÑUØ$¤j¸-Ô&HÐIô
ˆð	9Ø�K‰K˜Ó$×-Ñ-Ô/Ø�I‰IÐ6Õ7øÜ ò 	9Ü!×,Ñ,Ó.ˆIØ�O‰O˜O¨yÐ8Ô9Ø�O‰O˜N¨iÐ7Ö8ð	9ús   ¦0A ÁABÂBc                 óê   — t        dddœ«      }	 |j                  d«      j                  «        | j                  d«       y # t        $ r( | j                  dt        j                  «       v «       Y y w xY w)Nz{% include 'sub.html' %}r—   r˜   r+   r„   z# sub.html:1 (via base.html:1)r†   r'   s     r   Útest_error_line_number_includez-StackTraceTest.test_error_line_number_includeõ   sh   € ÜØ4À)ÑLó
ˆð	XØ�K‰K˜Ó$×-Ñ-Ô/Ø�I‰IÐ6Õ7øÜ ò 	XØ�O‰OÐ<Ä	×@TÑ@TÓ@VÐVÖWð	Xús   �0A Á.A2Á1A2c                 óì   — t        dddœ«      }	 |j                  d«      j                  «        | j                  d«       | j                  d«       y # t        $ r t        j                  «       }Y Œ2w xY w)Nr—   z{% extends 'base.html' %}r˜   r™   r„   r›   )r   r&   r   r‡   rˆ   rŠ   r‹   ÚassertIn)r   r(   rœ   s      r   Ú)test_error_line_number_extends_base_errorz8StackTraceTest.test_error_line_number_extends_base_errorÿ   sk   € ÜØ#Ð1LÑMó
ˆð	/Ø�K‰K˜
Ó#×,Ñ,Ô.Ø�I‰IÐ6Ô7ð 	�‰�o yÕ1øô !ò 	/Ü!×,Ñ,Ó.ŠIð	/ús   �0A ÁA3Á2A3c                 óè   — t        dddœ«      }	 |j                  d«      j                  «        | j                  d«       y # t        $ r' | j                  dt        j                  «       «       Y y w xY w)Nz{% block 'block' %}{% end %}zM
{% extends 'base.html' %}
{% block 'block' %}
{{1/0}}
{% end %}
            r˜   r™   r„   z# sub.html:4 (via base.html:1)©r   r&   r   r‡   rˆ   r¡   rŠ   r‹   r'   s     r   Ú(test_error_line_number_extends_sub_errorz7StackTraceTest.test_error_line_number_extends_sub_error
  sj   € Üà;ðñó

ˆð	TØ�K‰K˜
Ó#×,Ñ,Ô.Ø�I‰IÐ6Õ7øÜ ò 	TØ�M‰MÐ:¼I×<PÑ<PÓ<RÖSð	Tús   �0A Á-A1Á0A1c                 óê   — t        ddddœ«      }	 |j                  d«      j                  «        | j                  d«       y # t        $ r' | j                  dt        j                  «       «       Y y w xY w)Nz{% include 'b.html' %}z{% include 'c.html' %}r—   )úa.htmlzb.htmlzc.htmlr§   r„   z## c.html:1 (via b.html:1, a.html:1)r¤   r'   s     r   Útest_multi_includesz"StackTraceTest.test_multi_includes  sk   € Üà2Ø2Ø#ñó
ˆð	YØ�K‰K˜Ó!×*Ñ*Ô,Ø�I‰IÐ6Õ7øÜ ò 	YØ�M‰MÐ?Ä×AUÑAUÓAWÖXð	Yús   ‘0A Á-A2Á1A2N)
r|   r}   r~   rŒ   r�   r�   rŸ   r¢   r¥   r¨   r5   r   r   r‚   r‚   Ã   s*   „ òGòGò9ò&Xò	2òTó$Yr   r‚   c                   ó   — e Zd Zd„ Zd„ Zy)ÚParseErrorDetailTestc                 óv  — t        ddi«      }| j                  t        «      5 }|j                  d«       d d d «       | j	                  dt        j                  «      «       | j	                  d|j                  j                  «       | j	                  d|j                  j                  «       y # 1 sw Y   Œ{xY w)Núfoo.htmlz

{{z'Missing end expression }} at foo.html:3r`   )	r   r9   r   r&   r   ÚstrÚ	exceptionÚfilenameÚlineno)r   r(   Úcms      r   Útest_detailsz!ParseErrorDetailTest.test_details,  s�   € Ü˜Z¨Ð2Ó3ˆØ×ÑœzÓ*ð 	$¨bØ�K‰K˜
Ô#÷	$à×ÑÐBÄCÈÏÉÓDUÔVØ×Ñ˜ R§\¡\×%:Ñ%:Ô;Ø×Ñ˜˜BŸL™L×/Ñ/Õ0÷		$ð 	$ús   £B/Â/B8c                 óL   — | j                  dt        t        d«      «      «       y )Nzasdf at None:0Úasdf)r   r­   r   r:   s    r   Útest_custom_parse_errorz,ParseErrorDetailTest.test_custom_parse_error4  s   € ð 	×ÑÐ)¬3¬z¸&Ó/AÓ+BÕCr   N)r|   r}   r~   r²   rµ   r5   r   r   rª   rª   +  s   „ ò1óDr   rª   c                   óN   — 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y)ÚAutoEscapeTestc                 ó*   — ddddddddd	d
ddœ| _         y )Nz'{% autoescape xhtml_escape %}{{ name }}z{% autoescape None %}{{ name }}z
{{ name }}zvescaped: {% include 'escaped.html' %}
unescaped: {% include 'unescaped.html' %}
default: {% include 'default.html' %}
zF{% autoescape xhtml_escape %}{% block name %}base: {{ name }}{% end %}z>{% autoescape None %}{% block name %}base: {{ name }}{% end %}zA{% autoescape xhtml_escape %}{% extends "unescaped_block.html" %}zn{% autoescape xhtml_escape %}{% extends "unescaped_block.html" %}{% block name %}extended: {{ name }}{% end %}z7{% autoescape None %}{% extends "escaped_block.html" %}zd{% autoescape None %}{% extends "escaped_block.html" %}{% block name %}extended: {{ name }}{% end %}zA{% autoescape xhtml_escape %}expr: {{ name }}
raw: {% raw name %})úescaped.htmlúunescaped.htmlúdefault.htmlúinclude.htmlúescaped_block.htmlúunescaped_block.htmlúescaped_extends_unescaped.htmlú escaped_overrides_unescaped.htmlúunescaped_extends_escaped.htmlú unescaped_overrides_escaped.htmlúraw_expression.html)Ú	templatesr:   s    r   ÚsetUpzAutoEscapeTest.setUp;  s<   € àEØ?Ø(ðð
#-ð%-ð
/(ð11ð/&ð11ð$ñ?#
ˆ�r   c                 ó¾  — t        | j                  d ¬«      }d}| j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d	«      j	                  |¬«      d
«       y )N©Ú
autoescapeúBobby <table>sr¹   r   ó   Bobby &lt;table&gt;srº   ó   Bobby <table>sr»   r¼   sP   escaped: Bobby &lt;table&gt;s
unescaped: Bobby <table>s
default: Bobby <table>s
©r   rÄ   r   r&   r   ©r   r(   r   s      r   Útest_default_offzAutoEscapeTest.test_default_offa  sÌ   € Ü˜DŸN™N°tÔ<ˆØˆØ×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;Ð=Tô	
ð 	×ÑØ�K‰KÐ(Ó)×2Ñ2¸Ð2Ó=Ð?Pô	
ð 	×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;Ð=Nô	
ð 	×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;ð)õ	
r   c                 ó¾  — t        | j                  d¬«      }d}| j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d	«      j	                  |¬«      d«       | j                  |j                  d
«      j	                  |¬«      d«       y )NÚxhtml_escaperÇ   rÉ   r¹   r   rÊ   rº   rË   r»   r¼   sV   escaped: Bobby &lt;table&gt;s
unescaped: Bobby <table>s
default: Bobby &lt;table&gt;s
rÌ   rÍ   s      r   Útest_default_onzAutoEscapeTest.test_default_onu  sÌ   € Ü˜DŸN™N°~ÔFˆØˆØ×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;Ð=Tô	
ð 	×ÑØ�K‰KÐ(Ó)×2Ñ2¸Ð2Ó=Ð?Pô	
ð 	×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;Ð=Tô	
ð 	×ÑØ�K‰K˜Ó'×0Ñ0°dÐ0Ó;ð/õ	
r   c                 óö   — t        | j                  «      }d}| j                  |j                  d«      j	                  |¬«      d«       | j                  |j                  d«      j	                  |¬«      d«       y )Nú<script>r½   r   ó   base: &lt;script&gt;r¾   ó   base: <script>rÌ   rÍ   s      r   Útest_unextended_blockz$AutoEscapeTest.test_unextended_block‰  so   € Ü˜DŸN™NÓ+ˆØˆØ×ÑØ�K‰KÐ,Ó-×6Ñ6¸DÐ6ÓAØ#ô	
ð 	×ÑØ�K‰KÐ.Ó/×8Ñ8¸dÐ8ÓCÐEVõ	
r   c                 óú   ‡— t        | j                  «      Šˆfd„}| j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d	«       y )
Nc                 óF   •— ‰j                  | «      j                  d¬«      S )NrÓ   r   r“   ©r   r(   s    €r   Úrenderz2AutoEscapeTest.test_extended_block.<locals>.render—  s    ø€ Ø—;‘;˜tÓ$×-Ñ-°:Ð-Ó>Ð>r   r¿   rÕ   rÀ   s   extended: &lt;script&gt;rÁ   rÔ   rÂ   s   extended: <script>©r   rÄ   r   ©r   rÚ   r(   s     @r   Útest_extended_blockz"AutoEscapeTest.test_extended_block”  s�   ø€ Ü˜DŸN™NÓ+ˆô	?ð 	×Ñ™Ð @ÓAÐCTÔUØ×ÑÙÐ5Ó6Ð8Sô	
ð 	×ÑÙÐ3Ó4Ð6Mô	
ð 	×ÑÙÐ5Ó6Ð8Mõ	
r   c                 ój   ‡— t        | j                  «      Šˆfd„}| j                   |d«      d«       y )Nc                 óF   •— ‰j                  | «      j                  d¬«      S )Nz<>&"r   r“   rÙ   s    €r   rÚ   z2AutoEscapeTest.test_raw_expression.<locals>.render©  s    ø€ Ø—;‘;˜tÓ$×-Ñ-°6Ð-Ó:Ð:r   rÃ   s#   expr: &lt;&gt;&amp;&quot;
raw: <>&"rÛ   rÜ   s     @r   Útest_raw_expressionz"AutoEscapeTest.test_raw_expression¦  s2   ø€ Ü˜DŸN™NÓ+ˆô	;ð 	×ÑÙÐ(Ó)Ð+Võ	
r   c                 óÒ   ‡ ‡‡— t        ddi«      Šˆ fd„Šˆˆfd„}‰ j                   |dd«      d«       ‰ j                   |dd«      d«       ‰ j                   |dd	g«      d
«       y )Nzfoo.pyz){% autoescape py_escape %}s = {{ name }}
c                 ój   •— ‰j                  t        | «      t        «       t        t	        | «      «      S rO   )r   ÚtypeÚbytesÚreprr   )rS   r   s    €r   Ú	py_escapez4AutoEscapeTest.test_custom_escape.<locals>.py_escape³  s&   ø€ Ø×ÑœT !›W¤eÔ,Üœ
 1›Ó&Ð&r   c                 óH   •— ‰j                  | «      j                  ‰|¬«      S )N)ræ   r   r“   )r   r   r(   ræ   s     €€r   rÚ   z1AutoEscapeTest.test_custom_escape.<locals>.render·  s"   ø€ Ø—;‘;˜xÓ(×1Ñ1¸IÈDÐ1ÓQÐQr   z<html>s   s = '<html>'
z';sys.exit()s   s = "';sys.exit()"
znot a strings   s = "['not a string']"
)r   r   )r   rÚ   r(   ræ   s   ` @@r   Útest_custom_escapez!AutoEscapeTest.test_custom_escape°  sn   ú€ Ü˜XÐ'SÐTÓUˆô	'õ	Rð 	×Ñ™ ¨(Ó3Ð5FÔGØ×Ñ™ ¨.Ó9Ð;VÔWØ×ÑÙ�8˜nÐ-Ó.Ð0Oõ	
r   c                 ó’   — t        ddi«      }| j                  |j                  d«      j                  t	        d«      ¬«      d«       y )Nzfoo.txtzG{% for i in items
  %}{% if i > 0 %}, {% end %}{#
  #}{{i
  }}{% end
%}r_   )Úitemss   0, 1, 2, 3, 4)r   r   r&   r   Úranger'   s     r   Útest_manual_minimize_whitespacez.AutoEscapeTest.test_manual_minimize_whitespaceÀ  sL   € ô àð ðó	
ˆð 	×ÑØ�K‰K˜	Ó"×+Ñ+´%¸³(Ð+Ó;Ð=Mõ	
r   c                 óü  — t        ddddddœ«      }| j                  |j                  d«      j                  «       d«       | j                  |j                  d	«      j                  «       d
«       | j                  |j                  d«      j                  «       d«       | j                  |j                  d«      j                  «       d«       | j                  |j                  d«      j                  «       d«       y )Nz   
	
 asdf	   z 


	 qwer     z	    zxcv

z  {% include baz.txt %} 
 z		{% include foo.html %}    )r¬   úbar.jsúbaz.txtr¼   úinclude.txtr¬   s   
asdf rî   s   
qwer rï   s   	    zxcv

r¼   s    	    zxcv


rð   s   		
asdf     r%   r'   s     r   Útest_whitespace_by_filenamez*AutoEscapeTest.test_whitespace_by_filenameÒ  sÑ   € äà1Ø/Ø+Ø =Ø?ñó
ˆð 	×Ñ˜Ÿ™ ZÓ0×9Ñ9Ó;¸ZÔHØ×Ñ˜Ÿ™ XÓ.×7Ñ7Ó9¸:ÔFà×Ñ˜Ÿ™ YÓ/×8Ñ8Ó:Ð<MÔNð 	×Ñ˜Ÿ™ ^Ó4×=Ñ=Ó?ÐAUÔVØ×Ñ˜Ÿ™ ]Ó3×<Ñ<Ó>Ð@RÕSr   c                 ó�  — dddœ}t        |d¬«      }| j                  |j                  d«      j                  «       d«       | j                  |j                  d«      j                  «       d	«       t        |d
¬«      }| j                  |j                  d«      j                  «       d«       | j                  |j                  d«      j                  «       d«       t        |d¬«      }| j                  |j                  d«      j                  «       d«       | j                  |j                  d«      j                  «       d«       y )Nz		foo

z		bar

)r¬   úbar.txtÚall)Ú
whitespacer¬   s   		foo

ró   s   		bar

Úsingles    foo
s    bar
Úonelines    foo s    bar r%   )r   rÄ   r(   s      r   Útest_whitespace_by_loaderz(AutoEscapeTest.test_whitespace_by_loaderé  sü   € Ø!.¸=ÑIˆ	Ü˜I°%Ô8ˆØ×Ñ˜Ÿ™ ZÓ0×9Ñ9Ó;¸^ÔLØ×Ñ˜Ÿ™ YÓ/×8Ñ8Ó:¸NÔKä˜I°(Ô;ˆØ×Ñ˜Ÿ™ ZÓ0×9Ñ9Ó;¸YÔGØ×Ñ˜Ÿ™ YÓ/×8Ñ8Ó:¸IÔFä˜I°)Ô<ˆØ×Ñ˜Ÿ™ ZÓ0×9Ñ9Ó;¸XÔFØ×Ñ˜Ÿ™ YÓ/×8Ñ8Ó:¸HÕEr   c                 ó|   — t        ddi«      }| j                  |j                  d«      j                  «       d«       y )Nr¬   zz{% whitespace oneline %}
    {% for i in range(3) %}
        {{ i }}
    {% end %}
{% whitespace all %}
    pre	formatted
s     0  1  2  
    pre	formatted
r%   r'   s     r   Útest_whitespace_directivez(AutoEscapeTest.test_whitespace_directive÷  sA   € Üàð ð	ó
ˆð 	×ÑØ�K‰K˜
Ó#×,Ñ,Ó.Ð0Tõ	
r   N)r|   r}   r~   rÅ   rÎ   rÑ   rÖ   rÝ   rà   rè   rì   rñ   rø   rú   r5   r   r   r·   r·   :  s<   „ ò$
òL
ò(
ò(	
ò
ò$
ò
ò 
ò$Tò.Fó
r   r·   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTemplateLoaderTestc                 ó¢   — t        t        j                  j                  t        j                  j	                  t
        «      d«      «      | _        y )NrÄ   )r	   Úosr”   ri   ÚdirnameÚ__file__r(   r:   s    r   rÅ   zTemplateLoaderTest.setUp
  s*   € ÜœRŸW™WŸ\™\¬"¯'©'¯/©/¼(Ó*CÀ[ÓQÓRˆ�r   c                 ó¬   — | j                   j                  d«      }|j                  «       }| j                  t	        |«      j                  «       d«       y )Nz	utf8.htmlu   HÃ©llo)r(   r&   r   r   r   Ústrip)r   Útmplrk   s      r   Útest_utf8_in_filez$TemplateLoaderTest.test_utf8_in_file  s?   € Ø�{‰{×Ñ Ó,ˆØ—‘“ˆØ×Ñœ FÓ+×1Ñ1Ó3°\ÕBr   N)r|   r}   r~   rÅ   r  r5   r   r   rü   rü   	  s   „ òSóCr   rü   )rþ   rŠ   r   Útornado.escaper   r   r   Útornado.templater   r   r   r	   Útornado.utilr
   ÚtypingÚTestCaser   r‚   rª   r·   rü   r5   r   r   ú<module>r
     s‹   ðÛ 	Û Û ç 7Ñ 7ß EÓ EÝ #ã ôtM�8×$Ñ$ô tMôneY�X×&Ñ&ô eYôPD˜8×,Ñ,ô DôL
�X×&Ñ&ô L
ô^C˜×*Ñ*õ Cr   