§
    ‹ŸjmH  ã                   ó  — 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dS )é    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j        d¦  «        d„ ¦   «         Zd„ ZdS )ÚTemplateTestc                 óx   — t          d¦  «        }|                      |                     d¬¦  «        d¦  «         d S ©NzHello {{ name }}!ÚBen©Únameó
   Hello Ben!©r   ÚassertEqualÚgenerate©ÚselfÚtemplates     úg/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/template_test.pyÚtest_simplezTemplateTest.test_simple   s=   € ÝÐ/Ñ0Ô0ˆØ×Ò˜×*Ò*°Ð*Ñ6Ô6¸ÑFÔFÐFÐFÐFó    c                 ó’   — t          d¦  «        }|                      |                     t          d¦  «        ¬¦  «        d¦  «         d S r   ©r   r   r   r   r   s     r   Ú
test_byteszTemplateTest.test_bytes   sC   € ÝÐ/Ñ0Ô0ˆØ×Ò˜×*Ò*µ°U±´Ð*Ñ<Ô<¸mÑLÔLÐLÐLÐLr   c                 ót   — t          d¦  «        }|                      |                     ¦   «         d¦  «         d S )Nz2 + 2 = {{ 2 + 2 }}s	   2 + 2 = 4r   r   s     r   Útest_expressionszTemplateTest.test_expressions   s8   € ÝÐ1Ñ2Ô2ˆØ×Ò˜×*Ò*Ñ,Ô,¨lÑ;Ô;Ð;Ð;Ð;r   c                 ó’   — t          d¦  «        }|                      |                     t          d¦  «        ¬¦  «        d¦  «         d S )Nz Hello{# TODO i18n #} {{ name }}!r   r   r   r   r   s     r   Útest_commentzTemplateTest.test_comment   sC   € ÝÐ>Ñ?Ô?ˆØ×Ò˜×*Ò*µ°U±´Ð*Ñ<Ô<¸mÑLÔLÐLÐLÐLr   c                 ó    — t          dddœ¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )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   sc   € ÝàFØ,ðð ñ
ô 
ˆð 	×ÒØ�KŠK˜Ñ%Ô%×.Ò.Ñ0Ô0Ð2Kñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó    — t          dddœ¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )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(   sg   € Ýððð
ð 
ñ
ô 
ˆð 	×ÒØ�KŠK˜Ñ$Ô$×-Ò-Ñ/Ô/ØBñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó¢   — t          ddddœ¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )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;   sZ   € Ýà4Ø9Ø ðð ñ
ô 
ˆð 	×Ò˜Ÿš ZÑ0Ô0×9Ò9Ñ;Ô;¸UÑCÔCÐCÐCÐCr   c                 ó  — |                       t          d„ ¦  «         |                       t          d„ ¦  «         |                      t          d¦  «                             ¦   «         d¦  «         |                      t          d¦  «                             ¦   «         d¦  «         |                      t          d¦  «                             ¦   «         d¦  «         |                      t          d	¦  «                             ¦   «         d
¦  «         d S )Nc                  ó    — t          d¦  «        S )Nz{{©r   © r   r   ú<lambda>z,TemplateTest.test_escaping.<locals>.<lambda>F   ó   € ­h°t©n¬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Ô3°UÑ;Ô;Ð;Ø×Ò� %™œ×1Ò1Ñ3Ô3°UÑ;Ô;Ð;Ø×Ò� %™œ×1Ò1Ñ3Ô3°UÑ;Ô;Ð;Ø×ÒÝÐ4Ñ5Ô5×>Ò>Ñ@Ô@Ø#ñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó¨   — t          t          d¦  «        ¦  «        }|                      |                     ¦   «         t          d¦  «        ¦  «         d S )Nõ   Ã©©r   r   r   r   r   s     r   Útest_unicode_templatez"TemplateTest.test_unicode_templateP   sC   € Ý�D ™NœNÑ+Ô+ˆØ×Ò˜×*Ò*Ñ,Ô,­d°8©n¬nÑ=Ô=Ð=Ð=Ð=r   c                 ó¨   — t          t          d¦  «        ¦  «        }|                      |                     ¦   «         t          d¦  «        ¦  «         d S )Nu
   {{ "Ã©" }}r=   r>   r   s     r   Útest_unicode_literal_expressionz,TemplateTest.test_unicode_literal_expressionT   sH   € õ
 �DÐ!1Ñ2Ô2Ñ3Ô3ˆØ×Ò˜×*Ò*Ñ,Ô,­d°8©n¬nÑ=Ô=Ð=Ð=Ð=r   c                 ó¨   — t          ddidd„ i¬¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )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Ô1×:Ò:Ñ<Ô<¸dÑCÔCÐCÐCÐCr   c                 ó˜   — d„ }t          t          d¦  «        ¦  «        }|                      |                     |¬¦  «        d¦  «         d S )Nc                 ó*   — |                       ¦   «         S ©N©Úupper©Úss    r   rQ   z&TemplateTest.test_apply.<locals>.upperc   s   € Ø—7’7‘9”9Ðr   z{% apply upper %}foo{% end %}rP   s   FOOr>   ©r   rQ   r   s      r   Ú
test_applyzTemplateTest.test_applyb   sV   € ð	ð 	ð 	õ �DÐ!@ÑAÔAÑBÔBˆØ×Ò˜×*Ò*°Ð*Ñ7Ô7¸Ñ@Ô@Ð@Ð@Ð@r   c                 ó²   — d„ }t          t          d¦  «        ¦  «        }|                      |                     |¬¦  «        t          d¦  «        ¦  «         d S )Nc                 óD   — t          | ¦  «                             ¦   «         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ÔHÑIÔIˆØ×Ò˜×*Ò*°Ð*Ñ7Ô7½¸lÑ9KÔ9KÑLÔLÐLÐLÐLr   c                 ó²   — d„ }t          t          d¦  «        ¦  «        }|                      |                     |¬¦  «        t          d¦  «        ¦  «         d S )Nc                 ó^   — t          t          | ¦  «                             ¦   «         ¦  «        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ÔHÑIÔIˆØ×Ò˜×*Ò*°Ð*Ñ7Ô7½¸lÑ9KÔ9KÑLÔLÐLÐLÐLr   c                 óæ   — t          t          d¦  «        ¦  «        }|                      |                     d¬¦  «        d¦  «         |                      |                     d¬¦  «        d¦  «         d S )Nz&{% if x > 4 %}yes{% else %}no{% end %}é   rG   s   yesé   s   nor>   r   s     r   Útest_ifzTemplateTest.test_ifw   sl   € Ý�DÐ!IÑJÔJÑKÔKˆØ×Ò˜×*Ò*¨QÐ*Ñ/Ô/°Ñ8Ô8Ð8Ø×Ò˜×*Ò*¨QÐ*Ñ/Ô/°Ñ7Ô7Ð7Ð7Ð7r   c                 óŽ   — t          t          d¦  «        ¦  «        }|                      |                     ¦   «         d¦  «         d S )Nz {% if True %}{% else %}{% end %}r   r>   r   s     r   Útest_if_empty_bodyzTemplateTest.test_if_empty_body|   s@   € Ý�DÐ!CÑDÔDÑEÔEˆØ×Ò˜×*Ò*Ñ,Ô,¨cÑ2Ô2Ð2Ð2Ð2r   c                 óæ   — t          t          d¦  «        ¦  «        }|                      |                     d¬¦  «        d¦  «         |                      |                     d¬¦  «        d¦  «         d S )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€   s{   € ÝÝðñô ñ	
ô 	
ˆð 	×Ò˜×*Ò*¨QÐ*Ñ/Ô/Ð1LÑMÔMÐMØ×Ò˜×*Ò*¨QÐ*Ñ/Ô/Ð1LÑMÔMÐMÐMÐMr   c                 óŽ   — t          t          d¦  «        ¦  «        }|                      |                     ¦   «         d¦  «         d S )Nz{% comment blah blah %}foos   foor>   r   s     r   Útest_comment_directivez#TemplateTest.test_comment_directiveŽ   s@   € Ý�DÐ!=Ñ>Ô>Ñ?Ô?ˆØ×Ò˜×*Ò*Ñ,Ô,¨fÑ5Ô5Ð5Ð5Ð5r   c                 óà   — t          t          d¦  «        ¦  «        }|                     ¦   «         }d                     |                     ¦   «         ¦  «        }|                      |d¦  «         d S )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’   sk   € ÝÝð	ñô ñ
ô 
ˆð ×"Ò"Ñ$Ô$ˆà—’˜&Ÿ,š,™.œ.Ñ)Ô)ˆØ×Ò˜ Ñ+Ô+Ð+Ð+Ð+r   c                 ó¨   — |                       t          d¬¦  «        5  t          t          d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NúDid not get expected exception©Úmsgz{% break %}©r9   r   r   r   r:   s    r   Útest_break_outside_loopz$TemplateTest.test_break_outside_loop¦   s–   € Ø×Ò�zÐ/OÐÑPÔPð 	*ð 	*Ý•T˜-Ñ(Ô(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ó   �AÁAÁAc                 ó¨   — |                       t          d¬¦  «        5  t          t          d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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ÔPð 	ð 	ÝÝÐTÑUÔUñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	rs   zno testable future importsc                 ó    — |                       dd¦  «         t          d¦  «        }|                       |                     ¦   «         d¦  «         d S )Ng      à?z{{ 1 / 2 }}Ú0)r   r   r   r   s     r   Útest_no_inherit_futurez#TemplateTest.test_no_inherit_future²   sO   € ð 	×Ò˜ Ñ$Ô$Ð$å˜MÑ*Ô*ˆØ×Ò˜×*Ò*Ñ,Ô,¨cÑ2Ô2Ð2Ð2Ð2r   c                 óž   — t          ddi¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )Nu
   tÃ©st.htmlÚhellos   hellor%   r'   s     r   Útest_non_ascii_namez TemplateTest.test_non_ascii_name¾   sJ   € ÝÐ-¨wÐ7Ñ8Ô8ˆØ×Ò˜ŸšÐ%5Ñ6Ô6×?Ò?ÑAÔAÀ8ÑLÔLÐLÐLÐ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ð Gð GðMð Mð Mð<ð <ð <ðMð Mð Mð	
ð 	
ð 	
ð
ð 
ð 
ð&Dð Dð Dð	
ð 	
ð 	
ð>ð >ð >ð>ð >ð >ðDð Dð DðAð Að AðMð Mð MðMð Mð Mð8ð 8ð 8ð
3ð 3ð 3ðNð Nð Nð6ð 6ð 6ð,ð ,ð ,ð(*ð *ð *ðð ð ð €X„]Ð/Ñ0Ô0ð	3ð 	3ñ 1Ô0ð	3ðMð Mð Mð Mð Mr   r   c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚStackTraceTestc                 ó  — t          ddi¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         d S # t          $ r, |                      dt          j        ¦   «         v ¦  «         Y d S 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Ä   ó£   € Ýàð ðñ
ô 
ˆð	GØ�KŠK˜Ñ$Ô$×-Ò-Ñ/Ô/Ð/Ø�IŠIÐ6Ñ7Ô7Ð7Ð7Ð7øÝ ð 	Gð 	Gð 	GØ�OŠO˜O­yÔ/CÑ/EÔ/EÐEÑFÔFÐFÐFÐFÐFð	Gøøøó   “<A Á2BÂBc                 ó  — t          ddi¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         d S # t          $ r, |                      dt          j        ¦   «         v ¦  «         Y d S 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¬¦  «        Š	 ‰                     d¦  «                             ¦   «          |                      d	¦  «         d S # t
          $ rE t          j        ¦   «         }|                      d
|v ¦  «         |                      d|v ¦  «         Y d S w xY w)Nc                 óL   •— ‰€J ‚ ‰                      | ¦  «        j        di |¤ŽS )Nr5   ©r&   r   )ÚpathÚkwargsr(   s     €r   Úload_generatezCStackTraceTest.test_error_line_number_module.<locals>.load_generateå   s4   ø€ ØÐ%Ð%Ð%Ø-�6—;’;˜tÑ$Ô$Ô-Ð7Ð7°Ð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ð 	8ð 	8ð 	8ð 	8õ Ø=È9ÐUÐUØ$¥j¸-Ð&HÑ&HÔ&HÐIð
ñ 
ô 
ˆð	9Ø�KŠK˜Ñ$Ô$×-Ò-Ñ/Ô/Ð/Ø�IŠIÐ6Ñ7Ô7Ð7Ð7Ð7øÝ ð 	9ð 	9ð 	9Ý!Ô,Ñ.Ô.ˆIØ�OŠO˜O¨yÐ8Ñ9Ô9Ð9Ø�OŠO˜N¨iÐ7Ñ8Ô8Ð8Ð8Ð8Ð8ð	9øøøs   ®<A, Á,AB;Â:B;c                 ó  — t          dddœ¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         d S # t          $ r, |                      dt          j        ¦   «         v ¦  «         Y d S 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õ   s¢   € ÝØ4À)ÐLÐLñ
ô 
ˆð	XØ�KŠK˜Ñ$Ô$×-Ò-Ñ/Ô/Ð/Ø�IŠIÐ6Ñ7Ô7Ð7Ð7Ð7øÝ ð 	Xð 	Xð 	XØ�OŠOÐ<Å	Ô@TÑ@VÔ@VÐVÑWÔWÐWÐWÐWÐWð	Xøøøs   ”<A Á2BÂBc                 ó  — t          dddœ¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         n## t          $ r t          j        ¦   «         }Y nw xY w|                      d|¦  «         d S )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ÿ   s�   € ÝØ#Ð1LÐMÐMñ
ô 
ˆð	/Ø�KŠK˜
Ñ#Ô#×,Ò,Ñ.Ô.Ð.Ø�IŠIÐ6Ñ7Ô7Ð7Ð7øÝ ð 	/ð 	/ð 	/Ý!Ô,Ñ.Ô.ˆIˆIˆIð	/øøøà�Š�o yÑ1Ô1Ð1Ð1Ð1s   ”<A ÁA1Á0A1c                 ó  — t          dddœ¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         d S # t          $ r+ |                      dt          j        ¦   «         ¦  «         Y d S 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
  s¦   € Ýà;ððð ñ

ô 

ˆð	TØ�KŠK˜
Ñ#Ô#×,Ò,Ñ.Ô.Ð.Ø�IŠIÐ6Ñ7Ô7Ð7Ð7Ð7øÝ ð 	Tð 	Tð 	TØ�MŠMÐ:½IÔ<PÑ<RÔ<RÑSÔSÐSÐSÐSÐSð	Tøøøs   ”<A Á1BÂBc                 ó  — t          ddddœ¦  «        }	 |                     d¦  «                             ¦   «          |                      d¦  «         d S # t          $ r+ |                      dt          j        ¦   «         ¦  «         Y d S 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  s§   € Ýà2Ø2Ø#ðð ñ
ô 
ˆð	YØ�KŠK˜Ñ!Ô!×*Ò*Ñ,Ô,Ð,Ø�IŠIÐ6Ñ7Ô7Ð7Ð7Ð7øÝ ð 	Yð 	Yð 	YØ�MŠMÐ?ÅÔAUÑAWÔAWÑXÔXÐXÐXÐXÐXð	Yøøøs   •<A Á1BÂBN)
r|   r}   r~   rŒ   r�   r�   rŸ   r¢   r¥   r¨   r5   r   r   r‚   r‚   Ã   sŽ   € € € € € ðGð Gð GðGð Gð Gð9ð 9ð 9ð&Xð Xð Xð	2ð 	2ð 	2ðTð Tð Tð$Yð Yð Yð Yð Yr   r‚   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚParseErrorDetailTestc                 ó†  — t          ddi¦  «        }|                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |                      d|j        j        ¦  «         |                      d|j        j        ¦  «         d S )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Ô3ˆØ×Ò�zÑ*Ô*ð 	$¨bØ�KŠK˜
Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à×ÒÐBÅCÈÌÑDUÔDUÑVÔVÐVØ×Ò˜ R¤\Ô%:Ñ;Ô;Ð;Ø×Ò˜˜BœLÔ/Ñ0Ô0Ð0Ð0Ð0s   ¬AÁAÁAc                 óf   — |                       dt          t          d¦  «        ¦  «        ¦  «         d S )Nzasdf at None:0Úasdf)r   r­   r   r:   s    r   Útest_custom_parse_errorz,ParseErrorDetailTest.test_custom_parse_error4  s1   € ð 	×ÒÐ)­3­z¸&Ñ/AÔ/AÑ+BÔ+BÑCÔCÐCÐCÐCr   N)r|   r}   r~   r²   rµ   r5   r   r   rª   rª   +  s7   € € € € € ð1ð 1ð 1ðDð Dð Dð Dð Dr   rª   c                   óP   — 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S )ÚAutoEscapeTestc                 ó,   — ddddddddd	d
ddœ| _         d S )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;  sE   € àEØ?Ø(ðð
#-ð%-ð
/(ð11ð/&ð11ð$ð?#
ð #
ˆŒˆˆr   c                 ó  — t          | j        d ¬¦  «        }d}|                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d	¦  «                             |¬¦  «        d
¦  «         d S )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°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}|                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d	¦  «                             |¬¦  «        d¦  «         |                      |                     d
¦  «                             |¬¦  «        d¦  «         d S )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°~ÐFÑFÔ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}|                      |                     d¦  «                             |¬¦  «        d¦  «         |                      |                     d¦  «                             |¬¦  «        d¦  «         d S )Nú<script>r½   r   ó   base: &lt;script&gt;r¾   ó   base: <script>rÌ   rÍ   s      r   Útest_unextended_blockz$AutoEscapeTest.test_unextended_block‰  sš   € Ý˜DœNÑ+Ô+ˆØˆØ×ÒØ�KŠKÐ,Ñ-Ô-×6Ò6¸DÐ6ÑAÔAØ#ñ	
ô 	
ð 	
ð 	×ÒØ�KŠKÐ.Ñ/Ô/×8Ò8¸dÐ8ÑCÔCÐEVñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó2  ‡— t          | j        ¦  «        Šˆfd„}|                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d	¦  «         d S )
Nc                 óV   •— ‰                      | ¦  «                             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Ñ+Ô+ˆð	?ð 	?ð 	?ð 	?ð 	?ð 	×Ò˜˜Ð @ÑAÔAÐCTÑUÔUÐUØ×ÒØˆFÐ5Ñ6Ô6Ð8Sñ	
ô 	
ð 	
ð 	×ÒØˆFÐ3Ñ4Ô4Ð6Mñ	
ô 	
ð 	
ð 	×ÒØˆFÐ5Ñ6Ô6Ð8Mñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óx   ‡— t          | j        ¦  «        Šˆfd„}|                       |d¦  «        d¦  «         d S )Nc                 óV   •— ‰                      | ¦  «                             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¦  s`   ø€ Ý˜DœNÑ+Ô+ˆð	;ð 	;ð 	;ð 	;ð 	;ð 	×ÒØˆFÐ(Ñ)Ô)Ð+Vñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó  ‡ ‡‡— t          ddi¦  «        Šˆ fd„Šˆˆfd„}‰                       |dd¦  «        d¦  «         ‰                       |dd¦  «        d¦  «         ‰                       |dd	g¦  «        d
¦  «         d S )Nzfoo.pyz){% autoescape py_escape %}s = {{ name }}
c                 óŒ   •— ‰                      t          | ¦  «        t          ¦  «         t          t	          | ¦  «        ¦  «        S rO   )r   ÚtypeÚbytesÚreprr   )rS   r   s    €r   Ú	py_escapez4AutoEscapeTest.test_custom_escape.<locals>.py_escape³  s3   ø€ Ø×Ò�T !™WœW¥eÑ,Ô,Ð,Ý�
 1™œÑ&Ô&Ð&r   c                 óX   •— ‰                      | ¦  «                             ‰|¬¦  «        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Ô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°  sÔ   øøø€ Ý˜XÐ'SÐTÑUÔUˆð	'ð 	'ð 	'ð 	'ð 	'ð	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	×Ò˜˜ ¨(Ñ3Ô3Ð5FÑGÔGÐGØ×Ò˜˜ ¨.Ñ9Ô9Ð;VÑWÔWÐWØ×ÒØˆF�8˜nÐ-Ñ.Ô.Ð0Oñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó¼   — t          ddi¦  «        }|                      |                     d¦  «                             t	          d¦  «        ¬¦  «        d¦  «         d S )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À  sm   € õ àð ðñ	
ô 	
ˆð 	×ÒØ�KŠK˜	Ñ"Ô"×+Ò+µ%¸±(´(Ð+Ñ;Ô;Ð=Mñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó~  — t          ddddddœ¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d	¦  «                             ¦   «         d
¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         d S )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Ô0×9Ò9Ñ;Ô;¸ZÑHÔHÐHØ×Ò˜Ÿš XÑ.Ô.×7Ò7Ñ9Ô9¸:ÑFÔFÐFà×Ò˜Ÿš YÑ/Ô/×8Ò8Ñ:Ô:Ð<MÑNÔNÐNð 	×Ò˜Ÿš ^Ñ4Ô4×=Ò=Ñ?Ô?ÐAUÑVÔVÐVØ×Ò˜Ÿš ]Ñ3Ô3×<Ò<Ñ>Ô>Ð@RÑSÔSÐSÐSÐSr   c                 ó:  — dddœ}t          |d¬¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d	¦  «         t          |d
¬¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         t          |d¬¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         d S )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ˆ	Ý˜I°%Ð8Ñ8Ô8ˆØ×Ò˜Ÿš ZÑ0Ô0×9Ò9Ñ;Ô;¸^ÑLÔLÐLØ×Ò˜Ÿš YÑ/Ô/×8Ò8Ñ:Ô:¸NÑKÔKÐKå˜I°(Ð;Ñ;Ô;ˆØ×Ò˜Ÿš ZÑ0Ô0×9Ò9Ñ;Ô;¸YÑGÔGÐGØ×Ò˜Ÿš YÑ/Ô/×8Ò8Ñ:Ô:¸IÑFÔFÐFå˜I°)Ð<Ñ<Ô<ˆØ×Ò˜Ÿš ZÑ0Ô0×9Ò9Ñ;Ô;¸XÑFÔFÐFØ×Ò˜Ÿš YÑ/Ô/×8Ò8Ñ:Ô:¸HÑEÔEÐEÐEÐEr   c                 óž   — t          ddi¦  «        }|                      |                     d¦  «                             ¦   «         d¦  «         d S )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÷  s`   € Ýàð ð	ñ
ô 
ˆð 	×ÒØ�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ð Tð Tð.Fð Fð Fð
ð 
ð 
ð 
ð 
r   r·   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTemplateLoaderTestc                 ó®   — t          t          j                             t          j                             t
          ¦  «        d¦  «        ¦  «        | _        d S )NrÄ   )r	   Úosr”   ri   ÚdirnameÚ__file__r(   r:   s    r   rÅ   zTemplateLoaderTest.setUp
  s3   € Ý�RœWŸ\š\­"¬'¯/ª/½(Ñ*CÔ*CÀ[ÑQÔQÑRÔRˆŒˆˆr   c                 óÌ   — | j                              d¦  «        }|                     ¦   «         }|                      t	          |¦  «                             ¦   «         d¦  «         d S )Nz	utf8.htmlu   HÃ©llo)r(   r&   r   r   r   Ústrip)r   Útmplrk   s      r   Útest_utf8_in_filez$TemplateLoaderTest.test_utf8_in_file  sT   € ØŒ{×Ò Ñ,Ô,ˆØ—’‘”ˆØ×Ò� FÑ+Ô+×1Ò1Ñ3Ô3°\ÑBÔBÐBÐBÐBr   N)r|   r}   r~   rÅ   r  r5   r   r   rü   rü   	  s:   € € € € € ðSð Sð SðCð Cð Cð Cð 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Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ #Ð #Ð #Ð #Ð #Ð #à €€€ðtMð tMð tMð tMð tM�8Ô$ñ tMô tMð tMðneYð eYð eYð eYð eY�XÔ&ñ eYô eYð eYðPDð Dð Dð Dð D˜8Ô,ñ Dô Dð DðL
ð L
ð L
ð L
ð L
�XÔ&ñ L
ô L
ð L
ð^Cð Cð Cð Cð C˜Ô*ñ Cô Cð Cð Cð Cr   