+
    ÃìÜj€  ã                   óB   € ^ RI t ^ RIHt ^RIHt R t ! R R]4      tR# )é    N)Úgreenlet)ÚTestCasec                  ó\   € \         P                  ! 4       P                  P                  ! V !  # )N)r   Ú
getcurrentÚparentÚswitch)Úargss   *ÚW/opt/render/project/src/.venv/lib/python3.14/site-packages/greenlet/tests/test_throw.pyr   r      s"   € Ü×ÒÓ ×'Ñ'×.Ò.°Ñ5Ð5ó    c                   óJ   a € ] tR t^t o R tR tR tR tR tR t	R t
RtV tR	# )
Ú
ThrowTestsc                ó´   € R  p\        V4      pVP                  4       pV P                  VR4       VP                  \        4      pV P                  VR4       R# )c                  ón   €  \        R 4       \        R4       R#   \         d    \        R 4        R# i ; i)ÚokNÚfail)r   ÚRuntimeError© r   r
   ÚfÚ ThrowTests.test_class.<locals>.f   s2   € ðÜ�t”ô �6ŽNøô  ô Ü�t”Úðús   ‚ š4³4r   N©r   r   ÚassertEqualÚthrowr   ©Úselfr   ÚgÚress   &   r
   Ú
test_classÚThrowTests.test_class   sK   € ò	ô �Q‹KˆØ�h‰h‹jˆØ×Ñ˜˜dÔ#Ø�g‰g”lÓ#ˆØ×Ñ˜˜dÖ#r   c                óh  € R  p\        V4      pVP                  4       pV P                  VR4       VP                  \	        R4      4      pV P                  VR4       \        V4      pVP                  4       pV P                  VR4       VP                  \        R4      pV P                  VR4       R# )c                  óÊ   €  \        R 4       \        R4       R#   \         d>    \        P                  ! 4       ^,          p \	        T 4      R8X  d   \        R 4        R#  LTi ; i)r   ÚciaoNr   )r   r   ÚsysÚexc_infoÚstr)Úvals    r
   r   ÚThrowTests.test_val.<locals>.f   sS   € ðÜ�t”ô �6ŽNøô  ô Ü—l’l“n QÕ'�Ü�s“8˜vÔ%Ü˜4”LÚñ &ðús   ‚ šAA"Á!A"r   r!   Nr   r   s   &   r
   Útest_valÚThrowTests.test_val   s”   € ò	ô �Q‹KˆØ�h‰h‹jˆØ×Ñ˜˜dÔ#Ø�g‰g”l 6Ó*Ó+ˆØ×Ñ˜˜dÔ#ä�Q‹KˆØ�h‰h‹jˆØ×Ñ˜˜dÔ#Ø�g‰g”l FÓ+ˆØ×Ñ˜˜dÖ#r   c                ó€  € R  p\        V4      pVP                  4       pV P                  VR4       VP                  4       pV P	                  \        V\         P                  4      4       V P	                  VP                  4       VP                  4       pV P	                  \        V\         P                  4      4       R# )c                  ó2   € \        R 4       \        R4       R# )r   r   N©r   r   r   r
   r   ÚThrowTests.test_kill.<locals>.f2   s   € Ü�4ŒLÜ�6ŽNr   r   N)r   r   r   r   Ú
assertTrueÚ
isinstanceÚGreenletExitÚdeadr   s   &   r
   Ú	test_killÚThrowTests.test_kill1   s…   € ò	ô �Q‹KˆØ�h‰h‹jˆØ×Ñ˜˜dÔ#Ø�g‰g‹iˆØ�‰œ
 3¬×(=Ñ(=Ó>Ô?Ø�‰˜Ÿ™ÔØ�g‰g‹iˆØ�‰œ
 3¬×(=Ñ(=Ó>Ö?r   c                ó  a€ \         P                  ! 4       oV3R  lpV3R lp\        V4      p\        W#R7      pV P                  \        4      ;_uu_ 4        VP	                  \        4       RRR4       V P                  VP                  4       V P                  VP                  4       \        V4      p\        W#R7      pVP                  4       pV P                  VR4       VP	                  \        4      pV P                  VR4       V P                  VP                  4       V P                  VP                  4       \        V4      p\        W#R7      pVP                  4       pV P                  VR4       VP                  4       pV P                  VR4       VP	                  \        4      pV P                  VR4       V P                  VP                  4       V P                  VP                  4       R#   + '       g   i     EL—; i)c                  óP   <€  S P                  R 4       R#   \         d     R# i ; i)úf1 ready to catchÚcaughtznormal exit)r   Ú
IndexError©Úmains   €r
   Úf1Ú9ThrowTests.test_throw_goes_to_original_parent.<locals>.f1A   s.   ø€ ð Ø—‘Ð/Ô0ñ !øô ô  Úð ús   ƒ –%¤%c                  ó*   <€ S P                  R 4       R# )úfrom f2Nr+   r8   s   €r
   Úf2Ú9ThrowTests.test_throw_goes_to_original_parent.<locals>.f2H   s   ø€ Ø�K‰K˜	Ö"r   )r   Nr5   r6   r=   )	r   r   ÚassertRaisesr7   r   r-   r0   r   r   )r   r:   r>   Úg1Úg2r   r9   s   &     @r
   Ú"test_throw_goes_to_original_parentÚ-ThrowTests.test_throw_goes_to_original_parent>   ss  ø€ Ü×"Ò"Ó$ˆõ	!õ	#ô �b‹\ˆÜ�bÔ$ˆØ×Ñœz×*Õ*Ø�H‰H”ZÔ ÷ +à�‰˜Ÿ™Ô Ø�‰˜Ÿ™Ô ä�b‹\ˆÜ�bÔ$ˆØ�i‰i‹kˆØ×Ñ˜Ð1Ô2Ø�h‰h”zÓ"ˆØ×Ñ˜˜hÔ'Ø�‰˜Ÿ™Ô Ø�‰˜Ÿ™Ô ä�b‹\ˆÜ�bÔ$ˆØ�i‰i‹kˆØ×Ñ˜Ð1Ô2Ø�i‰i‹kˆØ×Ñ˜˜iÔ(Ø�h‰h”zÓ"ˆØ×Ñ˜˜hÔ'Ø�‰˜Ÿ™Ô Ø�‰˜Ÿ™Ö ÷/ +×*Ð*ús   ÁG;Ç;H	c                ó&  € V P                  \        4      ;_uu_ 4       p\        P                  ! 4       P	                  \
        \        4       V 4       R R R 4       V P                  \        XP                  4      R4       R #   + '       g   i     L7; i)Nz1throw() third argument must be a traceback object)	r@   Ú	TypeErrorr   r   r   Ú	Exceptionr   r$   Ú	exception©r   Úexcs   & r
   Útest_non_traceback_paramÚ#ThrowTests.test_non_traceback_paramf   sd   € Ø×Ñœy×)Ô)¨SÜ×ÒÓ!×'Ñ'ÜÜ“Øô÷ *ð 	×Ñœ˜SŸ]™]Ó+ØLö	N÷ *×)ús   ž3B Â B	c                ó,  € V P                  \        4      ;_uu_ 4       p\        P                  ! 4       P	                  \        4       \        4       4       R R R 4       V P                  \        XP                  4      R4       R #   + '       g   i     L7; i)Nz0instance exception may not have a separate value)
r@   rF   r   r   r   rG   ÚBaseExceptionr   r$   rH   rI   s   & r
   Útest_instance_of_wrong_typeÚ&ThrowTests.test_instance_of_wrong_typep   sc   € Ø×Ñœy×)Ô)¨SÜ×ÒÓ!×'Ñ'Ü“Ü“ô÷ *ð 	×Ñœ˜SŸ]™]Ó+ØKö	M÷ *×)ús   ž6BÂB	c                ó
  € V P                  \        4      ;_uu_ 4       p\        P                  ! 4       P	                  R 4       RRR4       V P                  \        XP                  4      R4       R#   + '       g   i     L7; i)ÚabcNz1exceptions must be classes, or instances, not str)r@   rF   r   r   r   r   r$   rH   rI   s   & r
   Útest_not_throwableÚThrowTests.test_not_throwablez   s\   € Ø×Ñœy×)Ô)¨SÜ×ÒÓ!×'Ñ'Øô÷ *ð 	×Ñœ˜SŸ]™]Ó+ØLö	N÷	 *×)ús   ž%A2Á2B	r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r'   r1   rC   rK   rO   rS   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r
   r   r      s3   ø‡ € ò$ò$ò.@ò&!òPNòM÷Nð Nr   r   )r"   r   Ú r   r   r   r   r   r
   Ú<module>r]      s%   ðÛ 
õ Ý ò6ôuN�ö uNr   