ó
    ×›‘h}A  ã                  óÖ  • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKJr   " S S	\	R                  5      r " S
 S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R                  5      r " S S\	R.                  5      rg)z
HTTP errors.
é    )ÚannotationsN)ÚnativeString)Úunittest)Úerror)ÚTagc                  ó6   • \ rS rSrSrSS jrSS jrSS jrSrg)	ÚCodeToMessageTestsé   z4
L{_codeToMessages} inverts L{_responses.RESPONSES}
c                óT   • [         R                  " S5      nU R                  US5        g )Nó   302s   Found©r   Ú_codeToMessageÚassertEqual©ÚselfÚms     Ú_C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/web/test/test_error.pyÚtest_validCodeÚ!CodeToMessageTests.test_validCode   s"   € Ü× Ò  Ó(ˆØ×Ñ˜˜HÕ%ó    c                óT   • [         R                  " S5      nU R                  US 5        g )Ns   987r   r   s     r   Útest_invalidCodeÚ#CodeToMessageTests.test_invalidCode   s"   € Ü× Ò  Ó(ˆØ×Ñ˜˜DÕ!r   c                óT   • [         R                  " S5      nU R                  US 5        g )Ns   InvalidCoder   r   s     r   Útest_nonintegerCodeÚ&CodeToMessageTests.test_nonintegerCode!   s"   € Ü× Ò  Ó0ˆØ×Ñ˜˜DÕ!r   © N©ÚreturnÚNone)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   Ú__static_attributes__r   r   r   r	   r	      s   † ñô&ô"÷"r   r	   c                  óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	Sr
g	)Ú
ErrorTestsé&   z4
Tests for how L{Error} attributes are initialized.
c                óž   • [         R                  " S5      nU R                  UR                  S5        U R                  [	        U5      S5        g)z°
If no C{message} argument is passed to the L{Error} constructor and the
C{code} argument is a valid HTTP status code, C{message} is set to the
HTTP reason phrase for C{code}.
ó   200ó   OKú200 OKN©r   ÚErrorr   ÚmessageÚstr©r   Úes     r   Útest_noMessageValidStatusÚ$ErrorTests.test_noMessageValidStatus+   s:   € ô �KŠK˜ÓˆØ×Ñ˜Ÿ™ EÔ*Ø×Ñœ˜Q› Õ*r   c                óž   • [         R                  " S5      nU R                  UR                  S5        U R                  [	        U5      S5        g)z‡
If no C{message} argument is passed to the L{Error} constructor and
C{code} isn't a known HTTP status code, C{message} stays L{None}.
ó   999NÚ999r.   r2   s     r   Útest_noMessageForStatusÚ"ErrorTests.test_noMessageForStatus5   s:   € ô
 �KŠK˜ÓˆØ×Ñ˜Ÿ™ DÔ)Ø×Ñœ˜Q› Õ'r   c                óŽ   • U R                  [        5         [        R                  " S5        SSS5        g! , (       d  f       g= f)zn
If C{code} isn't plausibly an HTTP status code (i.e., composed of
digits) it is rejected with L{ValueError}.
s   InvalidStatusN)ÚassertRaisesÚ
ValueErrorr   r/   ©r   s    r   Útest_invalidStatusÚErrorTests.test_invalidStatus>   s+   € ð
 ×ÑœzÕ*Ü�KŠKÐ(Ô)÷ +×*Ö*ús	   –6¶
Ac                ó    • [         R                  " SS5      nU R                  UR                  S5        U R                  [	        U5      S5        g)zz
If a C{message} argument is passed to the L{Error} constructor, the
C{message} isn't affected by the value of C{status}.
r+   ó   My own messagez200 My own messageNr.   r2   s     r   Útest_messageExistsÚErrorTests.test_messageExistsF   s?   € ô
 �KŠK˜Ð 1Ó2ˆØ×Ñ˜Ÿ™Ð$5Ô6Ø×Ñœ˜Q›Ð!5Õ6r   c                óÌ   • [         R                  " SS5      nU R                  [        U5      S5        [         R                  " SS5      nU R                  [        U5      S5        g)zP
C{str()} on an L{Error} returns the code and message it was
instantiated with.
r+   r,   r-   éÈ   N)r   r/   r   r1   r2   s     r   Útest_strÚErrorTests.test_strO   sN   € ô �KŠK˜ Ó&ˆØ×Ñœ˜Q› Ô*ô �KŠK˜˜UÓ#ˆØ×Ñœ˜Q› Õ*r   r   Nr   )r!   r"   r#   r$   r%   r4   r9   r?   rC   rG   r&   r   r   r   r(   r(   &   s    † ñô+ô(ô*ô7÷+r   r(   c                  óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	Sr
g	)ÚPageRedirectTestsé]   z;
Tests for how L{PageRedirect} attributes are initialized.
c                óf   • [         R                  " SSS9nU R                  UR                  S5        g)zÉ
If no C{message} argument is passed to the L{PageRedirect} constructor
and the C{code} argument is a valid HTTP status code, C{code} is mapped
to a descriptive string to which C{message} is assigned.
r+   ó   /foo©Úlocationó
   OK to /fooN©r   ÚPageRedirectr   r0   r2   s     r   r4   Ú+PageRedirectTests.test_noMessageValidStatusb   s*   € ô ×Ò˜v°Ñ8ˆØ×Ñ˜Ÿ™ MÕ2r   c                óh   • [         R                  " S5      nU R                  UR                  S5        g)a  
If no C{message} argument is passed to the L{PageRedirect} constructor
and C{location} is also empty and the C{code} argument is a valid HTTP
status code, C{code} is mapped to a descriptive string to which
C{message} is assigned without trying to include an empty location.
r+   r,   NrQ   r2   s     r   Ú#test_noMessageValidStatusNoLocationÚ5PageRedirectTests.test_noMessageValidStatusNoLocationk   s(   € ô ×Ò˜vÓ&ˆØ×Ñ˜Ÿ™ EÕ*r   c                óf   • [         R                  " SSS9nU R                  UR                  S5        g)zŽ
If no C{message} argument is passed to the L{PageRedirect} constructor
and C{code} isn't a valid HTTP status code, C{message} stays L{None}.
r7   rM   rN   NrQ   r2   s     r   Ú)test_noMessageInvalidStatusLocationExistsÚ;PageRedirectTests.test_noMessageInvalidStatusLocationExistsu   s*   € ô
 ×Ò˜v°Ñ8ˆØ×Ñ˜Ÿ™ DÕ)r   c                óh   • [         R                  " SSSS9nU R                  UR                  S5        g)z�
If a C{message} argument is passed to the L{PageRedirect} constructor,
the C{message} isn't affected by the value of C{status}.
r+   rB   rM   rN   ó   My own message to /fooNrQ   r2   s     r   Ú test_messageExistsLocationExistsÚ2PageRedirectTests.test_messageExistsLocationExists}   s.   € ô
 ×Ò˜vÐ'8À7ÑKˆØ×Ñ˜Ÿ™Ð$=Õ>r   c                ój   • [         R                  " SS5      nU R                  UR                  S5        g)zš
If a C{message} argument is passed to the L{PageRedirect} constructor
and no location is provided, C{message} doesn't try to include the
empty location.
r+   rB   NrQ   r2   s     r   Útest_messageExistsNoLocationÚ.PageRedirectTests.test_messageExistsNoLocation…   s,   € ô ×Ò˜vÐ'8Ó9ˆØ×Ñ˜Ÿ™Ð$5Õ6r   r   Nr   ©r!   r"   r#   r$   r%   r4   rU   rX   r\   r_   r&   r   r   r   rJ   rJ   ]   s    † ñô3ô+ô*ô?÷7r   rJ   c                  óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	Sr
g	)ÚInfiniteRedirectionTestsé�   zB
Tests for how L{InfiniteRedirection} attributes are initialized.
c                óf   • [         R                  " SSS9nU R                  UR                  S5        g)zÐ
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and the C{code} argument is a valid HTTP status code,
C{code} is mapped to a descriptive string to which C{message} is
assigned.
r+   rM   rN   rP   N©r   ÚInfiniteRedirectionr   r0   r2   s     r   r4   Ú2InfiniteRedirectionTests.test_noMessageValidStatus”   s*   € ô ×%Ò% f°wÑ?ˆØ×Ñ˜Ÿ™ MÕ2r   c                óh   • [         R                  " S5      nU R                  UR                  S5        g)a  
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and C{location} is also empty and the C{code} argument is a
valid HTTP status code, C{code} is mapped to a descriptive string to
which C{message} is assigned without trying to include an empty
location.
r+   r,   Nrf   r2   s     r   rU   Ú<InfiniteRedirectionTests.test_noMessageValidStatusNoLocationž   s(   € ô ×%Ò% fÓ-ˆØ×Ñ˜Ÿ™ EÕ*r   c                óœ   • [         R                  " SSS9nU R                  UR                  S5        U R                  [	        U5      S5        g)z•
If no C{message} argument is passed to the L{InfiniteRedirection}
constructor and C{code} isn't a valid HTTP status code, C{message} stays
L{None}.
r7   rM   rN   Nr8   )r   rg   r   r0   r1   r2   s     r   rX   ÚBInfiniteRedirectionTests.test_noMessageInvalidStatusLocationExists©   s>   € ô ×%Ò% f°wÑ?ˆØ×Ñ˜Ÿ™ DÔ)Ø×Ñœ˜Q› Õ'r   c                óh   • [         R                  " SSSS9nU R                  UR                  S5        g)zˆ
If a C{message} argument is passed to the L{InfiniteRedirection}
constructor, the C{message} isn't affected by the value of C{status}.
r+   rB   rM   rN   r[   Nrf   r2   s     r   r\   Ú9InfiniteRedirectionTests.test_messageExistsLocationExists³   s.   € ô
 ×%Ò% fÐ.?È'ÑRˆØ×Ñ˜Ÿ™Ð$=Õ>r   c                ój   • [         R                  " SS5      nU R                  UR                  S5        g)z¡
If a C{message} argument is passed to the L{InfiniteRedirection}
constructor and no location is provided, C{message} doesn't try to
include the empty location.
r+   rB   Nrf   r2   s     r   r_   Ú5InfiniteRedirectionTests.test_messageExistsNoLocation»   s,   € ô ×%Ò% fÐ.?Ó@ˆØ×Ñ˜Ÿ™Ð$5Õ6r   r   Nr   ra   r   r   r   rc   rc   �   s    † ñô3ô	+ô(ô?÷7r   rc   c                  ó"   • \ rS rSrSrSS jrSrg)ÚRedirectWithNoLocationTestséÅ   ze
L{RedirectWithNoLocation} is a subclass of L{Error} which sets
a custom message in the constructor.
c                ó¤   • [         R                  " SSS5      nU R                  UR                  S5        U R                  UR                  S5        g)z›
When C{code}, C{message}, and C{uri} are passed to the
L{RedirectWithNoLocation} constructor, the C{message} and C{uri}
attributes are set, respectively.
r   s   REDIRECTs   https://example.coms   REDIRECT to https://example.comN)r   ÚRedirectWithNoLocationr   r0   Úurir2   s     r   Útest_validMessageÚ-RedirectWithNoLocationTests.test_validMessageË   sC   € ô ×(Ò(¨°Ð>TÓUˆØ×Ñ˜Ÿ™Ð$FÔGØ×Ñ˜Ÿ™Ð 6Õ7r   r   Nr   )r!   r"   r#   r$   r%   rw   r&   r   r   r   rr   rr   Å   s   † ñ÷
8r   rr   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)ÚMissingRenderMethodTestséÖ   zP
Tests for how L{MissingRenderMethod} exceptions are initialized and
displayed.
c                ó¶   • [        5       n[        R                  " US5      nU R                  UR                  U5        U R                  UR
                  S5        g)zŠ
Given C{element} and C{renderName} arguments, the
L{MissingRenderMethod} constructor assigns the values to the
corresponding attributes.
ÚrenderThingN)Úobjectr   ÚMissingRenderMethodÚassertIsÚelementÚ
renderName©r   Úeltr3   s      r   Útest_constructorÚ)MissingRenderMethodTests.test_constructorÜ   sA   € ô ‹hˆÜ×%Ò% c¨=Ó9ˆØ�‰�a—i‘i Ô%Ø�‰�a—l‘l MÕ2r   c                ó‚   • [        5       n[        R                  " US5      nU R                  [	        U5      SU-  5        g)z|
A L{MissingRenderMethod} is represented using a custom string
containing the element's representation and the method name.
r}   zB'MissingRenderMethod': %r had no render method named 'renderThing'N)r~   r   r   r   Úreprrƒ   s      r   Ú	test_reprÚ"MissingRenderMethodTests.test_reprç   s=   € ô
 ‹hˆÜ×%Ò% c¨=Ó9ˆØ×ÑÜ�‹GØTØñõ	
r   r   Nr   ©r!   r"   r#   r$   r%   r…   r‰   r&   r   r   r   rz   rz   Ö   s   † ñô
	3÷
r   rz   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)ÚMissingTemplateLoaderTestséõ   zR
Tests for how L{MissingTemplateLoader} exceptions are initialized and
displayed.
c                ó|   • [        5       n[        R                  " U5      nU R                  UR                  U5        g)zz
Given an C{element} argument, the L{MissingTemplateLoader} constructor
assigns the value to the corresponding attribute.
N)r~   r   ÚMissingTemplateLoaderr€   r�   rƒ   s      r   r…   Ú+MissingTemplateLoaderTests.test_constructorû   s-   € ô
 ‹hˆÜ×'Ò'¨Ó,ˆØ�‰�a—i‘i Õ%r   c                ó€   • [        5       n[        R                  " U5      nU R                  [	        U5      SU-  5        g)z~
A L{MissingTemplateLoader} is represented using a custom string
containing the element's representation and the method name.
z)'MissingTemplateLoader': %r had no loaderN)r~   r   r�   r   rˆ   rƒ   s      r   r‰   Ú$MissingTemplateLoaderTests.test_repr  s6   € ô
 ‹hˆÜ×'Ò'¨Ó,ˆØ×Ñœ˜a›Ð"MÐPSÑ"SÕTr   r   Nr   r‹   r   r   r   r�   r�   õ   s   † ñô
&÷Ur   r�   c                  ó´   • \ rS rSrSr/ 4SS jjrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrg)ÚFlattenerErrorTestsi  z
Tests for L{FlattenerError}.
c                óÎ   •  [        S5      e! [         aM  n[        R                  " [        R
                  " 5       S   5      n[        R                  " X!U5      s S nA$ S nAff = f)Núoh noesé   )ÚRuntimeErrorÚ	ExceptionÚ	tracebackÚ
extract_tbÚsysÚexc_infor   ÚFlattenerError)r   Úrootsr3   Útbs       r   ÚmakeFlattenerErrorÚ&FlattenerErrorTests.makeFlattenerError  sP   € ð	6Ü˜yÓ)Ð)øÜó 	6Ü×%Ò%¤c§l¢l£n°QÑ&7Ó8ˆBÜ×'Ò'¨°"Ó5Õ5ûð	6ús   ‚ �
A$—AAÁA$ÁA$c                ó   • SU-  $ )NzR(%s)r   )r   Úobjs     r   ÚfakeFormatRootÚ"FlattenerErrorTests.fakeFormatRoot  s   € Ø˜‰}Ðr   c                ób   • U R                  SS/S9nU R                  UR                  SS/5        g)z‹
Given C{exception}, C{roots}, and C{traceback} arguments, the
L{FlattenerError} constructor assigns the roots to the C{_roots}
attribute.
ÚaÚb)r    N)r¢   r   Ú_rootsr2   s     r   r…   Ú$FlattenerErrorTests.test_constructor  s3   € ð ×#Ñ#¨3°¨*Ð#Ð5ˆØ×Ñ˜Ÿ™ C¨ :Õ.r   c                ól   • U R                  5       nU R                  [        U5      [        U5      5        g)zL
The string form of a L{FlattenerError} is identical to its
representation.
N)r¢   r   r1   rˆ   r2   s     r   rG   ÚFlattenerErrorTests.test_str&  s*   € ð
 ×#Ñ#Ó%ˆØ×Ñœ˜Q›¤ a£Õ)r   c                óþ   • U R                  SS/5      nU R                  Ul        U R                  [        R
                  " S[        U5      [        R                  [        R                  -  5      [        U5      5        g)z·
The representation of a L{FlattenerError} initialized with roots and a
traceback contains a formatted representation of those roots (using
C{_formatRoot}) and a formatted traceback.
r©   rª   zœException while flattening:
  R\(a\)
  R\(b\)
  File "[^"]*", line [0-9]*, in makeFlattenerError
    raise RuntimeError\("oh noes"\)
RuntimeError: oh noes
$N)	r¢   r¦   Ú_formatRootÚ
assertTrueÚreÚmatchrˆ   ÚMÚSr2   s     r   Ú"test_reprWithRootsAndWithTracebackÚ6FlattenerErrorTests.test_reprWithRootsAndWithTraceback.  sc   € ð ×#Ñ# S¨# JÓ/ˆØ×+Ñ+ˆŒØ�‰Ü�HŠHð+ô �Q“Ü—‘”r—t‘t‘ó	ô �‹Gõ	
r   c                óØ   • U R                  / 5      nU R                  [        R                  " S[	        U5      [        R
                  [        R                  -  5      [	        U5      5        g)ú‡
The representation of a L{FlattenerError} initialized without roots but
with a traceback contains a formatted traceback but no roots.
zŠException while flattening:
  File "[^"]*", line [0-9]*, in makeFlattenerError
    raise RuntimeError\("oh noes"\)
RuntimeError: oh noes
$N)r¢   r±   r²   r³   rˆ   r´   rµ   r2   s     r   Ú%test_reprWithoutRootsAndWithTracebackÚ9FlattenerErrorTests.test_reprWithoutRootsAndWithTracebackD  sR   € ð
 ×#Ñ# BÓ'ˆØ�‰Ü�HŠHð+ô �Q“Ü—‘”r—t‘t‘óô �‹Gõ
	
r   c                óø   • [         R                  " [        S5      / S5      nU R                  [        R
                  " S[        U5      [        R                  [        R                  -  5      [        U5      5        g)r¹   r—   Nz3Exception while flattening:
RuntimeError: oh noes
$)	r   rŸ   r™   r±   r²   r³   rˆ   r´   rµ   r2   s     r   Ú(test_reprWithoutRootsAndWithoutTracebackÚ<FlattenerErrorTests.test_reprWithoutRootsAndWithoutTracebackV  sW   € ô
 × Ò ¤¨iÓ!8¸"¸dÓCˆØ�‰Ü�HŠHØJÜ�Q“Ü—‘”r—t‘t‘óô
 �‹Gõ	
r   c                óŠ   • U R                  5       nU R                  UR                  [        S5      5      [	        S5      5        g)zS
The C{_formatRoot} method formats a short unicode string using the
built-in repr.
ÚabcdN)r¢   r   r°   r   rˆ   r2   s     r   Ú!test_formatRootShortUnicodeStringÚ5FlattenerErrorTests.test_formatRootShortUnicodeStringe  s4   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™¤|°FÓ';Ó<¼dÀ6»lÕKr   c                óŽ   • U R                  5       n[        S5      nU R                  UR                  U5      [	        S5      5        g)zc
The C{_formatRoot} method formats a long unicode string using the
built-in repr with an ellipsis.
zxabcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-z-abcde-abcde-abcde-ab<...>e-abcde-abcde-abcde-N)r¢   r   r   r°   rˆ   ©r   r3   Ú
longStrings      r   Ú test_formatRootLongUnicodeStringÚ4FlattenerErrorTests.test_formatRootLongUnicodeStringm  s?   € ð
 ×#Ñ#Ó%ˆÜ! -Ó0ˆ
Ø×ÑØ�M‰M˜*Ó%ÜÐ@ÓAõ	
r   c                óx   • U R                  5       nU R                  UR                  S5      [        S5      5        g)zP
The C{_formatRoot} method formats a short byte string using the
built-in repr.
s   abcdN©r¢   r   r°   rˆ   r2   s     r   Útest_formatRootShortByteStringÚ2FlattenerErrorTests.test_formatRootShortByteStringy  s/   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™ wÓ/´°g³Õ?r   c                ó|   • U R                  5       nSnU R                  UR                  U5      [        S5      5        g)z`
The C{_formatRoot} method formats a long byte string using the
built-in repr with an ellipsis.
sx   abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-s-   abcde-abcde-abcde-ab<...>e-abcde-abcde-abcde-NrÉ   rÄ   s      r   Útest_formatRootLongByteStringÚ1FlattenerErrorTests.test_formatRootLongByteString�  s:   € ð
 ×#Ñ#Ó%ˆØ#ˆ
Ø×ÑØ�M‰M˜*Ó%ÜÐAÓBõ	
r   c                óx   • U R                  5       nU R                  UR                  [        S5      5      S5        g)z]
The C{_formatRoot} method formats a C{Tag} with no filename information
as 'Tag <tagName>'.
úa-tagzTag <a-tag>N)r¢   r   r°   r   r2   s     r   Útest_formatRootTagNoFilenameÚ0FlattenerErrorTests.test_formatRootTagNoFilename�  s/   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™¤s¨7£|Ó4°mÕDr   c                ó~   • U R                  5       n[        SSSSS9nU R                  UR                  U5      S5        g)z|
The C{_formatRoot} method formats a C{Tag} with filename information
using the filename, line, column, and tag information
rÐ   ztpl.pyé
   r
   )ÚfilenameÚ
lineNumberÚcolumnNumberz-File "tpl.py", line 10, column 20, in "a-tag"N)r¢   r   r   r°   )r   r3   Úts      r   Útest_formatRootTagWithFilenameÚ2FlattenerErrorTests.test_formatRootTagWithFilename•  s?   € ð
 ×#Ñ#Ó%ˆÜ� (°rÈÑKˆØ×ÑØ�M‰M˜!ÓÐMõ	
r   c           	     óð   • U R                  [        [        R                  " [	        S5      S// 5      5      S5        U R                  [        [        R                  " [	        S5      S// 5      5      S5        g)zš
If a L{FlattenerError} is created with a string root, up to around 40
bytes from that string are included in the string representation of the
exception.
ÚreasonÚ	abc123xyzz?Exception while flattening:
  'abc123xyz'
RuntimeError: reason
Úd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789zcException while flattening:
  '01234567890123456789<...>01234567890123456789'
RuntimeError: reason
N©r   r1   r   rŸ   r™   r>   s    r   Útest_stringÚFlattenerErrorTests.test_string   si   € ð 	×ÑÜ”×$Ò$¤\°(Ó%;¸k¸]ÈBÓOÓPØVô	
ð 	×ÑÜ”×$Ò$¤\°(Ó%;Ð>OÐ=PÐRTÓUÓVð%õ	
r   c           	     óð   • U R                  [        [        R                  " [	        S5      S// 5      5      S5        U R                  [        [        R                  " [	        S5      S// 5      5      S5        g)z 
If a L{FlattenerError} is created with a unicode root, up to around 40
characters from that string are included in the string representation
of the exception.
rÜ   u	   abcâ˜ƒxyzzBException while flattening:
  'abc\u2603xyz'
RuntimeError: reason
ux   01234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ9zwException while flattening:
  '01234567\u2603901234567\u26039<...>01234567\u2603901234567\u26039'
RuntimeError: reason
Nrß   r>   s    r   Útest_unicodeÚ FlattenerErrorTests.test_unicode²  sv   € ð 	×ÑÜÜ×$Ò$¤\°(Ó%;Ð>QÐ=RÐTVÓWóð%ô		
ð 	×ÑÜÜ×$Ò$Ü  Ó*Ð-HÐ,IÈ2óóð
%õ	
r   r   N)r    zlist[object]r   zerror.FlattenerError)r¥   r~   r   r1   r   )r!   r"   r#   r$   r%   r¢   r¦   r…   rG   r¶   rº   r½   rÁ   rÆ   rÊ   rÍ   rÑ   rÙ   rà   rã   r&   r   r   r   r•   r•     sZ   † ñð 8:ö 6ôô/ô*ô
ô,
ô$
ôLô

ô@ô

ôEô	
ô
÷$
r   r•   c                  ó"   • \ rS rSrSrSS jrSrg)ÚUnsupportedMethodTestsiÎ  z!
Tests for L{UnsupportedMethod}.
c                ój   • [         R                  " SS/5      nU R                  [        U5      S5        g)z”
The C{__str__} for L{UnsupportedMethod} makes it clear that what it
shows is a list of the supported methods, not the method that was
unsupported.
s   HEADs   PATCHz#Expected one of [b'HEAD', b'PATCH']N)r   ÚUnsupportedMethodr   r1   r2   s     r   rG   ÚUnsupportedMethodTests.test_strÓ  s1   € ô ×#Ò# W¨hÐ$7Ó8ˆØ×ÑÜ�‹FØ1õ	
r   r   Nr   )r!   r"   r#   r$   r%   rG   r&   r   r   r   ræ   ræ   Î  s   † ñ÷

r   ræ   )r%   Ú
__future__r   r²   r�   r›   Útwisted.python.compatr   Útwisted.trialr   Útwisted.webr   Útwisted.web.templater   ÚTestCaser	   r(   rJ   rc   rr   rz   r�   r•   ÚSynchronousTestCaseræ   r   r   r   Ú<module>rñ      sÎ   ðñõ #ã 	Û 
Û å .Ý "Ý Ý $ô"˜×*Ñ*ô "ô$4+�×"Ñ"ô 4+ôn/7˜×)Ñ)ô /7ôd37˜x×0Ñ0ô 37ôl8 (×"3Ñ"3ô 8ô"
˜x×0Ñ0ô 
ô>U ×!2Ñ!2ô Uô2}
˜(×+Ñ+ô }
ô@
˜X×9Ñ9õ 
r   