+
    üÐj}A  ã                  óØ  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt  ! R R]	P                  4      t ! R	 R
]	P                  4      t ! R R]	P                  4      t ! R R]	P                  4      t ! R R]	P                  4      t ! R R]	P                  4      t ! R R]	P                  4      t ! R R]	P                  4      t ! R R]	P.                  4      tR# )z
HTTP errors.
)ÚannotationsN)ÚnativeString)Úunittest)Úerror)ÚTagc                  ó>   € ] tR t^tRtR R ltR R ltR R ltRtR	# )
ÚCodeToMessageTestsz4
L{_codeToMessages} inverts L{_responses.RESPONSES}
c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNone© )Úformats   "Ú=/usr/lib/python3/dist-packages/twisted/web/test/test_error.pyÚ__annotate__ÚCodeToMessageTests.__annotate__   s   € ÷ &ñ & ñ &ó    c                	óV   € \         P                  ! R 4      pV P                  VR4       R# )ó   302s   FoundN©r   Ú_codeToMessageÚassertEqual©ÚselfÚms   & r   Útest_validCodeÚ!CodeToMessageTests.test_validCode   s"   € Ü× Ò  Ó(ˆØ×Ñ˜˜HÖ%r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r      s   € ÷ "ñ " $ñ "r   c                	óV   € \         P                  ! R 4      pV P                  VR4       R# )s   987Nr   r   s   & r   Útest_invalidCodeÚ#CodeToMessageTests.test_invalidCode   s"   € Ü× Ò  Ó(ˆØ×Ñ˜˜DÖ!r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r   !   s   € ÷ "ñ " Tñ "r   c                	óV   € \         P                  ! R 4      pV P                  VR4       R# )s   InvalidCodeNr   r   s   & r   Útest_nonintegerCodeÚ&CodeToMessageTests.test_nonintegerCode!   s"   € Ü× Ò  Ó0ˆØ×Ñ˜˜DÖ!r   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r    r$   Ú__static_attributes__r   r   r   r   r      s   † ñõ&õ"÷"ñ "r   r   c                  óV   € ] tR t^&tRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )Ú
ErrorTestsz4
Tests for how L{Error} attributes are initialized.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ÚErrorTests.__annotate__+   s   € ÷ +ñ +¨4ñ +r   c                ó    € \         P                  ! R4      pV P                  VP                  R4       V P                  \	        V4      R4       R# )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               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r/   5   s   € ÷ (ñ (¨ñ (r   c                ó    € \         P                  ! R4      pV P                  VP                  R4       V P                  \	        V4      R4       R# )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Ú999r4   r8   s   & r   Útest_noMessageForStatusÚ"ErrorTests.test_noMessageForStatus5   s:   € ô
 �KŠK˜ÓˆØ×Ñ˜Ÿ™ DÔ)Ø×Ñœ˜Q› Ö'r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r/   >   s   € ÷ *ñ * Dñ *r   c                ó¦   € V P                  \        4      ;_uu_ 4        \        P                  ! R4       RRR4       R#   + '       g   i     R# ; i)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   r5   ©r   s   &r   Útest_invalidStatusÚErrorTests.test_invalidStatus>   s1   € ð
 ×Ñœz×*Õ*Ü�KŠKÐ(Ô)÷ +×*×*Ò*ús	   ž?¿A	c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r/   F   s   € ÷ 7ñ 7 Dñ 7r   c                ó¢   € \         P                  ! RR4      pV P                  VP                  R4       V P                  \	        V4      R4       R# )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}.
r1   ó   My own messagez200 My own messageNr4   r8   s   & r   Útest_messageExistsÚErrorTests.test_messageExistsF   s?   € ô
 �KŠK˜Ð 1Ó2ˆØ×Ñ˜Ÿ™Ð$5Ô6Ø×Ñœ˜Q›Ð!5Ö6r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r/   O   s   € ÷ +ñ +˜$ñ +r   c                óÎ   € \         P                  ! RR4      pV P                  \        V4      R4       \         P                  ! ^ÈR4      pV P                  \        V4      R4       R# )zP
C{str()} on an L{Error} returns the code and message it was
instantiated with.
r1   r2   r3   N)r   r5   r   r7   r8   s   & r   Útest_strÚErrorTests.test_strO   sN   € ô �KŠK˜ Ó&ˆØ×Ñœ˜Q› Ô*ô �KŠK˜˜UÓ#ˆØ×Ñœ˜Q› Ö*r   r   N)r&   r'   r(   r)   r*   r:   r@   rG   rL   rP   r+   r   r   r   r-   r-   &   s%   † ñõ+õ(õ*õ7÷+ñ +r   r-   c                  óV   € ] tR t^]tRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )ÚPageRedirectTestsz;
Tests for how L{PageRedirect} attributes are initialized.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ÚPageRedirectTests.__annotate__b   s   € ÷ 3ñ 3¨4ñ 3r   c                ón   € \         P                  ! RRR7      pV P                  VP                  R4       R# )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.
r1   ó   /foo©Úlocationó
   OK to /fooN©r   ÚPageRedirectr   r6   r8   s   & r   r:   Ú+PageRedirectTests.test_noMessageValidStatusb   s*   € ô ×Ò˜v°Ô8ˆØ×Ñ˜Ÿ™ MÖ2r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   rU   k   s   € ÷ +ñ +°Tñ +r   c                ój   € \         P                  ! R4      pV P                  VP                  R4       R# )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.
r1   r2   Nr[   r8   s   & r   Ú#test_noMessageValidStatusNoLocationÚ5PageRedirectTests.test_noMessageValidStatusNoLocationk   s(   € ô ×Ò˜vÓ&ˆØ×Ñ˜Ÿ™ EÖ*r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   rU   u   s   € ÷ *ñ *¸4ñ *r   c                ón   € \         P                  ! RRR7      pV P                  VP                  R4       R# )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}.
r>   rW   rX   Nr[   r8   s   & r   Ú)test_noMessageInvalidStatusLocationExistsÚ;PageRedirectTests.test_noMessageInvalidStatusLocationExistsu   s*   € ô
 ×Ò˜v°Ô8ˆØ×Ñ˜Ÿ™ DÖ)r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   rU   }   ó   € ÷ ?ñ ?°$ñ ?r   c                óp   € \         P                  ! RRRR7      pV P                  VP                  R4       R# )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}.
r1   rK   rW   rX   ó   My own message to /fooNr[   r8   s   & r   Ú test_messageExistsLocationExistsÚ2PageRedirectTests.test_messageExistsLocationExists}   s.   € ô
 ×Ò˜vÐ'8À7ÔKˆØ×Ñ˜Ÿ™Ð$=Ö>r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   rU   …   ó   € ÷ 7ñ 7¨dñ 7r   c                ól   € \         P                  ! RR4      pV P                  VP                  R4       R# )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.
r1   rK   Nr[   r8   s   & r   Útest_messageExistsNoLocationÚ.PageRedirectTests.test_messageExistsNoLocation…   s,   € ô ×Ò˜vÐ'8Ó9ˆØ×Ñ˜Ÿ™Ð$5Ö6r   r   N©r&   r'   r(   r)   r*   r:   r`   rd   rj   ro   r+   r   r   r   rS   rS   ]   s%   † ñõ3õ+õ*õ?÷7ñ 7r   rS   c                  óV   € ] tR t^�tRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )ÚInfiniteRedirectionTestszB
Tests for how L{InfiniteRedirection} attributes are initialized.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   Ú%InfiniteRedirectionTests.__annotate__”   s   € ÷ 3ñ 3¨4ñ 3r   c                ón   € \         P                  ! RRR7      pV P                  VP                  R4       R# )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.
r1   rW   rX   rZ   N©r   ÚInfiniteRedirectionr   r6   r8   s   & r   r:   Ú2InfiniteRedirectionTests.test_noMessageValidStatus”   s*   € ô ×%Ò% f°wÔ?ˆØ×Ñ˜Ÿ™ MÖ2r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ru   ž   s   € ÷ 	+ñ 	+°Tñ 	+r   c                ój   € \         P                  ! R4      pV P                  VP                  R4       R# )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.
r1   r2   Nrw   r8   s   & r   r`   Ú<InfiniteRedirectionTests.test_noMessageValidStatusNoLocationž   s(   € ô ×%Ò% fÓ-ˆØ×Ñ˜Ÿ™ EÖ*r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ru   ©   s   € ÷ (ñ (¸4ñ (r   c                ó¤   € \         P                  ! RRR7      pV P                  VP                  R4       V P                  \	        V4      R4       R# )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}.
r>   rW   rX   Nr?   )r   rx   r   r6   r7   r8   s   & r   rd   ÚBInfiniteRedirectionTests.test_noMessageInvalidStatusLocationExists©   s>   € ô ×%Ò% f°wÔ?ˆØ×Ñ˜Ÿ™ DÔ)Ø×Ñœ˜Q› Ö'r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ru   ³   rg   r   c                óp   € \         P                  ! RRRR7      pV P                  VP                  R4       R# )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}.
r1   rK   rW   rX   ri   Nrw   r8   s   & r   rj   Ú9InfiniteRedirectionTests.test_messageExistsLocationExists³   s.   € ô
 ×%Ò% fÐ.?È'ÔRˆØ×Ñ˜Ÿ™Ð$=Ö>r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   ru   »   rm   r   c                ól   € \         P                  ! RR4      pV P                  VP                  R4       R# )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.
r1   rK   Nrw   r8   s   & r   ro   Ú5InfiniteRedirectionTests.test_messageExistsNoLocation»   s,   € ô ×%Ò% fÐ.?Ó@ˆØ×Ñ˜Ÿ™Ð$5Ö6r   r   Nrq   r   r   r   rs   rs   �   s%   † ñõ3õ	+õ(õ?÷7ñ 7r   rs   c                  ó&   € ] tR t^ÅtRtR R ltRtR# )ÚRedirectWithNoLocationTestsze
L{RedirectWithNoLocation} is a subclass of L{Error} which sets
a custom message in the constructor.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   Ú(RedirectWithNoLocationTests.__annotate__Ë   s   € ÷ 8ñ 8 4ñ 8r   c                ó¦   € \         P                  ! RRR4      pV P                  VP                  R4       V P                  VP                  R4       R# )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   r6   Úurir8   s   & r   Útest_validMessageÚ-RedirectWithNoLocationTests.test_validMessageË   sC   € ô ×(Ò(¨°Ð>TÓUˆØ×Ñ˜Ÿ™Ð$FÔGØ×Ñ˜Ÿ™Ð 6Ö7r   r   N)r&   r'   r(   r)   r*   r�   r+   r   r   r   r‡   r‡   Å   s   † ñ÷
8ñ 8r   r‡   c                  ó2   € ] tR t^ÖtRtR R ltR R ltRtR# )ÚMissingRenderMethodTestszP
Tests for how L{MissingRenderMethod} exceptions are initialized and
displayed.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   Ú%MissingRenderMethodTests.__annotate__Ü   s   € ÷ 	3ñ 	3 $ñ 	3r   c                ó¸   € \        4       p\        P                  ! VR4      pV P                  VP                  V4       V P                  VP
                  R4       R# )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   Úeltr9   s   &  r   Útest_constructorÚ)MissingRenderMethodTests.test_constructorÜ   sA   € ô ‹hˆÜ×%Ò% c¨=Ó9ˆØ�‰�a—i‘i Ô%Ø�‰�a—l‘l MÖ2r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r’   ç   s   € ÷ 
ñ 
˜4ñ 
r   c                óŒ   € \        4       p\        P                  ! VR4      pV P                  \	        V4      RV,          4       R# )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   N©r&   r'   r(   r)   r*   rœ   r¡   r+   r   r   r   r�   r�   Ö   s   † ñõ
	3÷
ñ 
r   r�   c                  ó2   € ] tR t^õtRtR R ltR R ltRtR# )ÚMissingTemplateLoaderTestszR
Tests for how L{MissingTemplateLoader} exceptions are initialized and
displayed.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   Ú'MissingTemplateLoaderTests.__annotate__û   s   € ÷ &ñ & $ñ &r   c                ó~   € \        4       p\        P                  ! V4      pV P                  VP                  V4       R# )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               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r§     s   € ÷ Uñ U˜4ñ Ur   c                óŠ   € \        4       p\        P                  ! V4      pV P                  \	        V4      RV,          4       R# )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¥   õ   s   † ñõ
&÷Uñ Ur   r¥   c                  óÔ   € ] tR tRtRt. 3R R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR!tR"# )#ÚFlattenerErrorTestsi  z
Tests for L{FlattenerError}.
c               ó    € V ^8„  d   QhRRRR/# )r   Úrootszlist[object]r   zerror.FlattenerErrorr   )r   s   "r   r   Ú FlattenerErrorTests.__annotate__  s   € ÷ 6ñ 6¨ð 6Ð>Rñ 6r   c                	óØ   €  \        R 4      h  \         dR   p\        P                  ! \        P
                  ! 4       ^,          4      p\        P                  ! Y!T4      u Rp?# Rp?ii ; i)úoh noesN)ÚRuntimeErrorÚ	ExceptionÚ	tracebackÚ
extract_tbÚsysÚexc_infor   ÚFlattenerError)r   r±   r9   Ú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               ó    € V ^8„  d   QhRRRR/# )r   Úobjr•   r   r7   r   )r   s   "r   r   r²     s   € ÷ ñ  &ð ¨Sñ r   c                	ó   € R V,          # )zR(%s)r   )r   rÀ   s   &&r   ÚfakeFormatRootÚ"FlattenerErrorTests.fakeFormatRoot  s   € Ø˜�}Ðr   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²     s   € ÷ /ñ / $ñ /r   c                ój   € V P                  RR.R7      pV P                  VP                  RR.4       R# )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   Ú_rootsr8   s   & r   rœ   Ú$FlattenerErrorTests.test_constructor  s3   € ð ×#Ñ#¨3°¨*Ð#Ó5ˆØ×Ñ˜Ÿ™ C¨ :Ö.r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   &  s   € ÷ *ñ *˜$ñ *r   c                ón   € V P                  4       pV P                  \        V4      \        V4      4       R# )zL
The string form of a L{FlattenerError} is identical to its
representation.
N)r½   r   r7   r    r8   s   & r   rP   ÚFlattenerErrorTests.test_str&  s*   € ð
 ×#Ñ#Ó%ˆØ×Ñœ˜Q›¤ a£Ö)r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   .  s   € ÷ 
ñ 
°Dñ 
r   c                ó  € V P                  RR.4      pV P                  Vn        V P                  \        P
                  ! R\        V4      \        P                  \        P                  ,          4      \        V4      4       R# )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ÚSr8   s   & r   Ú"test_reprWithRootsAndWithTracebackÚ6FlattenerErrorTests.test_reprWithRootsAndWithTraceback.  sc   € ð ×#Ñ# S¨# JÓ/ˆØ×+Ñ+ˆŒØ�‰Ü�HŠHð+ô �Q“Ü—‘”r—t‘t•ó	ô �‹Gö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   D  s   € ÷ 
ñ 
°tñ 
r   c                óâ   € V P                  . 4      pV P                  \        P                  ! R\	        V4      \        P
                  \        P                  ,          4      \	        V4      4       R# )ú‡
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Ô   r8   s   & r   Ú%test_reprWithoutRootsAndWithTracebackÚ9FlattenerErrorTests.test_reprWithoutRootsAndWithTracebackD  sR   € ð
 ×#Ñ# BÓ'ˆØ�‰Ü�HŠHð+ô �Q“Ü—‘”r—t‘t•óô �‹Gö
	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   V  s   € ÷ 
ñ 
¸$ñ 
r   c                ó  € \         P                  ! \        R4      . R4      pV P                  \        P
                  ! R\        V4      \        P                  \        P                  ,          4      \        V4      4       R# )rÙ   r´   Nz3Exception while flattening:
RuntimeError: oh noes
$)	r   r»   rµ   rÐ   rÑ   rÒ   r    rÓ   rÔ   r8   s   & r   Ú(test_reprWithoutRootsAndWithoutTracebackÚ<FlattenerErrorTests.test_reprWithoutRootsAndWithoutTracebackV  sW   € ô
 × Ò ¤¨iÓ!8¸"¸dÓCˆØ�‰Ü�HŠHØJÜ�Q“Ü—‘”r—t‘t•óô
 �‹Gö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   e  s   € ÷ Lñ L°4ñ Lr   c                óŒ   € V P                  4       pV P                  VP                  \        R4      4      \	        R4      4       R# )zS
The C{_formatRoot} method formats a short unicode string using the
built-in repr.
ÚabcdN)r½   r   rÏ   r   r    r8   s   & r   Ú!test_formatRootShortUnicodeStringÚ5FlattenerErrorTests.test_formatRootShortUnicodeStringe  s4   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™¤|°FÓ';Ó<¼dÀ6»lÖKr   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   m  s   € ÷ 

ñ 

°$ñ 

r   c                ó�   € V P                  4       p\        R4      pV P                  VP                  V4      \	        R4      4       R# )zc
The C{_formatRoot} method formats a long unicode string using the
built-in repr with an ellipsis.
z-abcde-abcde-abcde-ab<...>e-abcde-abcde-abcde-Nzxabcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-)r½   r   r   rÏ   r    ©r   r9   Ú
longStrings   &  r   Ú test_formatRootLongUnicodeStringÚ4FlattenerErrorTests.test_formatRootLongUnicodeStringm  s?   € ð
 ×#Ñ#Ó%ˆÜ! -Ó0ˆ
Ø×ÑØ�M‰M˜*Ó%ÜÐ@ÓAö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   y  s   € ÷ @ñ @°ñ @r   c                óz   € V P                  4       pV P                  VP                  R4      \        R4      4       R# )zP
The C{_formatRoot} method formats a short byte string using the
built-in repr.
s   abcdN©r½   r   rÏ   r    r8   s   & r   Útest_formatRootShortByteStringÚ2FlattenerErrorTests.test_formatRootShortByteStringy  s/   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™ wÓ/´°g³Ö?r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   �  s   € ÷ 

ñ 

¨tñ 

r   c                ó~   € V P                  4       pRpV P                  VP                  V4      \        R4      4       R# )z`
The C{_formatRoot} method formats a long byte string using the
built-in repr with an ellipsis.
s-   abcde-abcde-abcde-ab<...>e-abcde-abcde-abcde-Nsx   abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-rí   rç   s   &  r   Útest_formatRootLongByteStringÚ1FlattenerErrorTests.test_formatRootLongByteString�  s:   € ð
 ×#Ñ#Ó%ˆØ#ˆ
Ø×ÑØ�M‰M˜*Ó%ÜÐAÓBö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   �  s   € ÷ Eñ E¨dñ Er   c                óz   € V P                  4       pV P                  VP                  \        R4      4      R4       R# )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   r8   s   & r   Útest_formatRootTagNoFilenameÚ0FlattenerErrorTests.test_formatRootTagNoFilename�  s/   € ð
 ×#Ñ#Ó%ˆØ×Ñ˜Ÿ™¤s¨7£|Ó4°mÖDr   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   •  s   € ÷ 	
ñ 	
°ñ 	
r   c                ó†   € V P                  4       p\        RR^
^R7      pV P                  VP                  V4      R4       R# )z|
The C{_formatRoot} method formats a C{Tag} with filename information
using the filename, line, column, and tag information
rö   ztpl.py)ÚfilenameÚ
lineNumberÚcolumnNumberz-File "tpl.py", line 10, column 20, in "a-tag"N)r½   r   r   rÏ   )r   r9   Úts   &  r   Útest_formatRootTagWithFilenameÚ2FlattenerErrorTests.test_formatRootTagWithFilename•  s?   € ð
 ×#Ñ#Ó%ˆÜ� (°rÈÔKˆØ×ÑØ�M‰M˜!ÓÐMö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²      s   € ÷ 
ñ 
˜Tñ 
r   c           	     óò   € V P                  \        \        P                  ! \	        R4      R.. 4      4      R4       V P                  \        \        P                  ! \	        R4      R.. 4      4      R4       R# )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
zcException while flattening:
  '01234567890123456789<...>01234567890123456789'
RuntimeError: reason
NÚd0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789©r   r7   r   r»   rµ   rF   s   &r   Útest_stringÚFlattenerErrorTests.test_string   si   € ð 	×ÑÜ”×$Ò$¤\°(Ó%;¸k¸]ÈBÓOÓPØVô	
ð 	×ÑÜ”×$Ò$¤\°(Ó%;Ð>OÐ=PÐRTÓUÓVð%ö	
r   c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   r²   ²  s   € ÷ 
ñ 
˜dñ 
r   c           	     óò   € V P                  \        \        P                  ! \	        R4      R.. 4      4      R4       V P                  \        \        P                  ! \	        R4      R.. 4      4      R4       R# )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
zwException while flattening:
  '01234567\u2603901234567\u26039<...>01234567\u2603901234567\u26039'
RuntimeError: reason
Nux   01234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ901234567â˜ƒ9r  rF   s   &r   Útest_unicodeÚ FlattenerErrorTests.test_unicode²  sv   € ð 	×ÑÜÜ×$Ò$¤\°(Ó%;Ð>QÐ=RÐTVÓWóð%ô		
ð 	×ÑÜÜ×$Ò$Ü  Ó*Ð-HÐ,IÈ2óóð
%ö	
r   r   N)r&   r'   r(   r)   r*   r½   rÂ   rœ   rP   rÕ   rÚ   rÞ   rã   ré   rî   rò   r÷   rÿ   r  r  r+   r   r   r   r¯   r¯     s_   † ñð 8:÷ 6õõ/õ*õ
õ,
õ$
õLõ

õ@õ

õEõ	
õ
÷$
ñ 
r   r¯   c                  ó&   € ] tR tRtRtR R ltRtR# )ÚUnsupportedMethodTestsiÎ  z!
Tests for L{UnsupportedMethod}.
c               ó   € V ^8„  d   QhRR/# r
   r   )r   s   "r   r   Ú#UnsupportedMethodTests.__annotate__Ó  s   € ÷ 

ñ 

˜$ñ 

r   c                ól   € \         P                  ! RR.4      pV P                  \        V4      R4       R# )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   r7   r8   s   & r   rP   ÚUnsupportedMethodTests.test_strÓ  s1   € ô ×#Ò# W¨hÐ$7Ó8ˆØ×ÑÜ�‹FØ1ö	
r   r   N)r&   r'   r(   r)   r*   rP   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-   rS   rs   r‡   r�   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   