
    &hp$              	          S SK r S SKr\S:X  a  \R                  R	                  \R                  R	                  \R                  R                  \5      5      S    5      S    r\R                  R	                  \5      u  rr	\	S:H  =(       a!    \R                  R	                  \5      S   S:H  r
\
(       d  \ R                  R                  S \5        O\R                  S5      r
S SKrS SKrS SKrS SKrS SKJr  SSKJr  S	 r\" 5       u  rrrS
r\R4                  " \5      r\R4                  " S\ S35      rS r\R<                  " 5       r\RA                  SSSSS9  \RA                  SSSSS9  \RA                  SSSSS\S9  \RA                  SSSSS9  \RA                  SS S!S"S#S$S%9  \RA                  S&S'S!S"S S(S%9  \RA                  S)S*SS+S9  S,r!S-r"S.r#\R4                  " S/\RH                  5      r%S0 r&S1 r'S2 r(S3r)S4r*\) S5\* 3r+\R4                  " \+\RX                  \RZ                  -  5      r.S6 r/       S=S7 jr0\S:X  a  \Rc                  5       u  r2r3\3(       d<  \
(       a  S8r4O\R                  Rk                  \S95      r4\ Rl                  " S:\4 S;35        \0" \3S    \2Rn                  \2Rp                  \2Rr                  \2Rt                  \2Rv                  (       + S<9  gg)>    N__main__tests   pygamezpygame.tests.)pformat)PygameTestLoaderc                     [         R                  R                  [         R                  R                  [         R                  R                  [        5      5      S   5      S   n [         R                  R                  U 5      S   n[
        R                  R                  SU 5        [         R                  R                  U S5      nXU4$ )Nr   run_tests__tests)ospathsplitabspath__file__sysinsertjoin)test_subdirmain_dirfake_test_subdirs      [/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/test_utils/test_runner.pyprepare_test_envr      s    ''--bggooh.G H KLQOKww}}[)!,HHHOOA{#ww||K1CD"222    z-?[a-zA-Z0-9_]+(z,?\s*)+$c                     [         R                  U5      c  [        R                  " U S35      e[        R                  U5      UR                  l        g )Nz argument has invalid value)
EXCLUDE_REmatchoptparseOptionValueErrorTAG_REfindallvaluesexclude)optionoptvalueparsers       r   exclude_callbackr'   +   sA    &''3%/J(KLL"NN51FMMr   z-iz--incomplete
store_truezfail incomplete tests)actionhelpz-sz--usesubprocesszBrun everything in a single process  (default: use no subprocesses)z-ez	--excludecallbackstringz$exclude tests containing any of TAGS)r)   typer*   r+   z-uz--unbufferedzOShow stdout/stderr as tests run, rather than storing it and showing on failuresz-vz	--verbose	verbositystore_const   zVerbose output)destr)   constr*   z-qz--quietzQuiet outputz-rz--randomizezrandomize order of tests   a  
======================================================================
ERROR: all_tests_for (%(module)s.AllTestCases)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/%(module)s.py", line 1, in all_tests_for
subprocess completely failed with return code of %(return_code)s
cmd:          %(cmd)s
test_env:     %(test_env)s
working_dir:  %(working_dir)s
return (first 10 and last 10 lines):
%(raw_return)s

zJ----------------------------------------------------------------------
Ranz^([FE.sux]*)$c                 ,   SU ;   nU(       a1  SU ;   d  SU ;   a#  SR                  U R                  S5      SS 5      $  g
[        R                  U 5      R	                  S5      nSU;   d  SU;   a'  U [        U5      S-   S R                  [        5      S	   $ g
)z.from test runner output return the tracebacks. ...ERRORFAILURE

==r   NEFr    )r   r   DOTSsearchgrouplenRAN_TESTS_DIV)outputverbose_modedotss      r   extract_tracebacksrD      s    V#Lf	V 3==h!7!;<< !4  {{6"((+$;#+#d)a-/*00?BBr   c                    SU ;   nU(       a  SSSSSSS.nU R                  S	5      S
   nUR                  S5       Vs/ s H  oD(       d  M  SU;   d  M  UPM     nn/ nU H?  nSnU H  nX;   d  M
  UR                  X(   5        Sn  O   U(       a  M3  [        SU 35      e   SR                  U5      $ [        R                  U 5      R                  S5      n	U	$ s  snf )z)convert the test runner output into dots.r5   r9   usx.r:   )z	... ERRORz... unexpected successz... skippedz... expected failurez... okz... FAILr8   r   
...FTz(Not sure what this is. Add to reasons. :r;   r   )r   append
ValueErrorr   r<   r=   r>   )
rA   rB   reasonsresultsllinesdotlistfoundreasonrC   s
             r   output_into_dotsrU      s     V#L &)$'
 ,,x(+#MM$/D/q1!/DAE!;NN7?3 E	 "
 5 #KA3!OPP  www;;v$$Q'DK Es   
CCCc                 X   Sn/ n[        U R                  5       5       H  u  pE[        UR                  S5      u  pgnU(       a  U(       ai  [        U;  a_  UR                  5       n	[        U	5      S:  a!  SR                  U	SS S/-   U	SS -   5      US	'   UR                  [        U-  5        US
-  nM  [        U5      n
X*-  n[        U5      nU(       d  M  UR                  U5        M     [        UR                  S5      u  p[        U5      nU/nU(       a'  USR                  U5      R                  S5      SS /-  nU[         SU SUS S3/-  nU(       a9  U(       a  SU 3/O/ U(       a  SU 3/O/ -   nUSSR                  U5       S3/-  nOUS/-  nUSR                  U5      4$ )a  

Return pieced together results in a form fit for human consumption. Don't
rely on results if  piecing together subprocessed  results (single process
mode is fine). Was originally meant for that  purpose but was found to be
unreliable.  See the dump option for reliable results.

r;   )rA   return_code
raw_return   rJ   N
   rK   irX   r9   FE z
 tests in z.3fzs
z	failures=zerrors=zFAILED (z, z)
zOK
)sorteditemsmapgetr@   
splitlinesr?   r   rL   COMPLETE_FAILURE_TEMPLATErU   rD   countlstrip)all_resultstall_dotsfailuresmodulerO   rA   rW   rX   output_linesrC   
tracebackstotal_failstotal_errorstotal_testscombinedinfoss                    r   combine_resultsrr      s    HH!+"3"3"56*-KK@+
'Z +-v*E%002L< 2%(,		 "%/,st2DD)% OO5?@OH''/
:OOJ') 7, !$HNND 9Kh-KzHRWWX&--d3CR899M?!K=
1S'EFFH0;Ik]+,*6w|n%&B
 	x		% 01566VH		(+++r   z#<--!! TEST RESULTS START HERE !!-->z!<--!! TEST RESULTS END HERE !!-->z
(.*)c                     [         R                  U 5      nU(       a   [        UR                  S5      5      $ g !   [	        SUR                  S5       35        e = f)Nr   zBUGGY TEST RESULTS EVAL:
 )TEST_RESULTS_REr=   evalr>   print)rX   test_resultss     r   get_test_resultsrx      s[    "))*5L	**1-.. 	/0B0B10E/FGHs	   9  Ac                    [         R                  " 5       nUc  SnU(       a  [        SU  35        [        X1US9n	UR	                  U	R                  U 5      5        [        R                  " 5       n
[         R                  " XUS9nUR                  U5      nUS:X  a;  U
R                  S5        [        U
R                  5       5        U
R                  S5        U U
R                  5       UR                  [        UR                  5      [        UR                   5      S.0nU(       a3  [        ["        5        [        [%        U5      5        [        [&        5        gU$ )	zRun a unit test moduleNr   zloading )randomize_testsinclude_incompleter"   )streambufferr.   r0   r   )rA   	num_tests
num_errorsnum_failures)unittest	TestSuiterv   r   addTestloadTestsFromNameioStringIOTextTestRunnerrunseekreadgetvaluetestsRunr?   errorsri   TEST_RESULTS_STARTr   TEST_RESULTS_END)rj   
incompleteusesubprocess	randomizer"   r}   
unbufferedr.   suiteloaderrA   runnerrO   s                r   run_testr      s     E	!"!'F 
MM&**623[[]F$$FYWFjjGA~AfkkmA 	oo' ))gnn- 0 01	
G  !ggr   zpygame.tests.gozrun_tests.pyz(No test module provided; consider using z instead)r   r   r   r"   r}   )FTF)interactiveTNr   )<r   r   __name__r   r   r   r   pkg_dir
parent_dirpkg_nameis_pygame_pkgr   
startswithr   r   rer   pprintr   test_machineryr   r   r   r   r   TAG_PATcompiler   r   r'   OptionParser
opt_parser
add_optionTIME_OUTrc   r@   	MULTILINEr<   rD   rU   rr   r   r   _test_re_strDOTALLMrt   rx   r   
parse_argsoptionsargsrun_fromr   exitr   r   r   r"   r    r   r   <module>r      s7   
 	zggmmBGGMM"''//(*CDQGHKG77==1J'TBGGMM*,Ea,HH,TM:&''8M 	  	   ,3 +;*< '+' 	G	ZZ1WIX./
2 ""$
 
  .4K     	P	     		/     	Z	     	
	     	
	     -3M    " %	zz/2<<0B3,p ; 6 $%V,<+=>**\299rtt+;< /h z))+MGT(Hww||Hn=H;H:XNOQ%%++##&&& r   