
    &h}	                         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 S\R                  5      r
\R                  " S\R                  5      r " S S	5      r\" 5       rg! \ a	    S SKJr   NXf = f)
    N)StringIO   )import_submodulec                   :   ^  \ rS rSr SU 4S jjrU 4S jrSrU =r$ )PygameTestLoader   c                    > [         TU ]  5         Xl        Uc  [        5       U l        O[        U5      U l        U(       a  SU l        g g )N)testtodo_)super__init__randomize_testssetexcludetestMethodPrefix)selfr   include_incompleter   	__class__s       ^/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/test_utils/test_machinery.pyr   PygameTestLoader.__init__   s?     	.?5DLw<DL$5D!     c                   > / n[         TU ]  U5       HK  n[        U[        X5      5      nU R                  R                  U5      (       d  M:  UR                  U5        MM     U R                  (       a  [        R                  " U5        U$ N)
r   getTestCaseNamesget_tagsgetattrr   
isdisjointappendr   randomshuffle)r   testCaseClassresnametagsr   s        r   r   !PygameTestLoader.getTestCaseNames   sj    G,];DM7=+GHD||&&t,,

4  <
 NN3
r   )r   r   r   )FF)interactive)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    GW6
 
r   r   z!\|[tT]ags:(-?[ a-zA-Z,0-9_\n]+)\|c                   &    \ rS rSrS rS rS rSrg)TestTags/   c                      0 U l         0 U l        g r   memoizedparent_modules)r   s    r   r   TestTags.__init__0   s     r   c                     XR                   ;  a"  [        UR                  5      U R                   U'   U R                   U   $ r   )r3   r   r(   )r   class_s     r   get_parent_moduleTestTags.get_parent_module4   s:    ,,,*:6;L;L*MD'""6**r   c                    XR                   4nX0R                  ;  GaG  U R                  U5      n[        US/ 5      n[        US/ 5      n[        R                  [        R                  " U5      =(       d    S5      nU(       a>  UR                  S5      R                  S5       Vs/ s H  oR                  5       PM     n	nO/ n	[        5       n
XVU	4 H  nU(       d  M  U Vs1 s H  oR                  S5      (       a  M  UiM     nnU Vs1 s H  oU;  d  M
  USS  iM     nnU(       a  U
R                  U5        U(       d  Mr  U
R                  U5        M     XR                  U'   U R                  U   $ s  snf s  snf s  snf )N__tags__ r   ,-)r'   r2   r7   r   TAGS_REsearchinspectgetdocgroupsplitstripr   
startswithupdatedifference_update)r   parent_classmethkeyparent_modulemodule_tags
class_tagsr$   t	test_tagscombinedaddremoves                r   __call__TestTags.__call__9   s>   ]]+mm# 22<@M!-R@K z2>J>>'.."6"<"=D04

10C0CC0HI0H1WWY0H	I		uH$)<"&@$Qll3.?q$@)->A#%!AB%>OOC(6..v6 = "*MM#}}S!!' J A>s   $E4 E9=E9		E>	E>r1   N)r'   r(   r)   r*   r   r7   rS   r+    r   r   r.   r.   /   s    !+
"r   r.   )r@   r   reunittestr   ImportErrorior;   r   
TestLoaderr   compileMr>   r.   r   rU   r   r   <module>r]      sp      	 ! x** < **9244
@'" '"T :c  s   A" "A10A1