+
    i-  c                   sv    ^ RI t ^ RIt^ RIt^RIHtHt ^RIHt Rt^t	Rt
RtR tR tR	 t ! R
 R]4      t]tR# )i    N)loaderrunner)installHandlerTa  Examples:
  %(prog)s test_module               - run tests from test_module
  %(prog)s module.TestClass          - run tests from module.TestClass
  %(prog)s module.Class.test_method  - run specified test method
  %(prog)s path/to/test_file.py      - run tests from test_file.py
aF  Examples:
  %(prog)s                           - run default set of tests
  %(prog)s MyTestSuite               - run suite 'MyTestSuite'
  %(prog)s MyTestCase.testSomething  - run MyTestCase.testSomething
  %(prog)s MyTestCase                - run all 'test*' test methods
                                       in MyTestCase
c                 sl   \         P                  P                  V 4      '       Ed   V P                  4       P	                  R 4      '       d   \         P                  P                  V 4      '       d   \         P                  P                  V \         P                  ! 4       4      p\         P                  P                  V4      '       g&   VP                  \         P                  4      '       d   V # Tp \         P                  P                  V 4      RR P                  RR4      P                  RR4      # V # )z.pyNZ\.Z/i)ospathZisfilelowerZendswithZisabsZrelpathZgetcwdZ
startswithZpardirZnormpathZreplace)nameZrel_path   & &/usr/lib64/python3.14/unittest/main.py_convert_namer
      s    
 
ww~~d

 5 5e < <77==wwtRYY[9Hww}}X&&(*=*=bii*H*HD ww%cr*224=EEc3OOK    c                 sB    V  Uu. uF  p\        V4      NK  	  up# u upi N)r
   )Znamesr   r   r	   _convert_namesr   .   s    ,12EDM$E222s   c                 s&    R V 9   g
   RV ,          p V # )*z*%s* )patterns   &r	   _convert_select_patternr   2   s    '>7"Nr   c                   s   a  ] tR t^8t o Rt^tR;t;t;t;t	;t
tRtRRRR]P                  R^RRRR3RRRR/R lltR tR	 tRR
 ltR tR tR tR tRR ltR tRtV tR# )TestProgramN__main__T	tb_localsF	durationsc               s\   \        V\        4      '       dL   \        V4      V n        VP	                  R 4      R,           F  p\        V P                  V4      V n        K   	  MWn        Vf   \        P                  pW`n        Wn	        Wn
        Wpn        Wn        Wn        Wn        Vf   \        P                  '       g	   RV n        MWn        W n        W@n        WPn        \(        P*                  P-                  V^ ,          4      V n        V P1                  V4       V P3                  4        R# )r   i   NNNdefault)
isinstancestrZ
__import__moduleZsplitZgetattrsysargvexitfailfast
catchbreak	verbositybufferr   r   ZwarnoptionswarningsdefaultTest
testRunner
testLoaderr   r   ZbasenameprogName	parseArgsrunTests)selfr   r#   r   r$   r%   r   r    r   r   r!   r"   r   r   Zparts   &&&&&&&&&&&&$$ r	   __init__ZTestProgram.__init__B   s    
 fc""$V,DKS)"--%dkk48 . !K<88D	 $"""COOO &DM %M&$$((a1tr   c                sn   V P                   fb   \        V P                  P                  4       4       \        \        RV P
                  /,          4       V P                  P                  4        R # \        V P                  P                  4       4       \        \        RV P
                  /,          4       R # )Nprog)	r   Zprint_main_parserZformat_helpMAIN_EXAMPLESr&   _discovery_parser
print_helpMODULE_EXAMPLES)r)   ZargsZkwargss   &*,r	   _print_helpZTestProgram._print_helpj   sx    ;;$##//12-64=="99:""--/$##//12/VT]]$;;<r   c                s
   V P                  4        V P                  f   \        V4      ^8  d7   V^,          P                  4       R8X  d   V P	                  VR,          4       R # V P
                  P                  VR,          V 4       V P                  '       g   V P	                  . 4       R # M#V P
                  P                  VR,          V 4       V P                  '       d.   \        V P                  4      V n	        \        R8X  d   R V n        McV P                  f	   R V n	        MM\        V P                  \        4      '       d   V P                  3V n	        M\        V P                  4      V n	        V P                  4        R # )Ndiscover:i   NNr   r   )_initArgParsersr   lenr   _do_discoveryr,   
parse_argstestsr   	testNames__name__r#   r   r   ZlistcreateTests)r)   r   s   &&r	   r'   ZTestProgram.parseArgss   s   ;;4y1}aJ!>""48,((b48::: ""2&	  ((b48:::+DJJ7DN:%"%!DN((#.."..0DN!$"2"23DNr   c                s   V P                   '       d   V P                   V P                  n         V'       dQ   Vf   V P                  MV! 4       pVP                  ! V P                  V P                  V P
                  4      V n        R # V P                  f-   V P                  P                  V P                  4      V n        R # V P                  P                  V P                  V P                  4      V n        R # r   )testNamePatternsr%   r2   startr   toptestr8   ZloadTestsFromModuler   ZloadTestsFromNames)r)   from_discoveryLoaderr    s   &&& r	   r:   ZTestProgram.createTests   s       /3/D/DDOO,(.T__FHF

DLL$((KDI^^#;;DKKHDI::4>>;?;;HDIr   c                s~    V P                  4       pV P                  V4      V n        V P                  V4      V n        R # r   )_getParentArgParser_getMainArgParserr,   _getDiscoveryArgParserr.   )r)   Zparent_parserr   r	   r3   ZTestProgram._initArgParsers   s6    002 22=A!%!<!<]!Kr   c           	     sP   \         P                  ! R R7      pVP                  RRRR^RR7       VP                  RR	RR^ R
R7       VP                  RRRRR7       VP                  RR\        RRRR7       V P                  f   VP                  RRRRRR7       R V n        V P
                  f   VP                  RRRRRR7       R V n        V P                  f   VP                  RRR RR!R7       R V n        V P                  f"   VP                  R"R#R$\        R%R&7       . V n        V# )'F)Zadd_helpz-vz	--verboser    Zstore_constzVerbose output)destactionZconsthelpz-qz--quietzQuiet outputz--localsr   Z
store_truez"Show local variables in tracebacks)rD   rE   rF   z--durationsr   NZNz+Show the N slowest test cases (N=0 for all))rD   typer   ZmetavarrF   z-fz
--failfastr   zStop on first fail or errorz-cz--catchr   z'Catch Ctrl-C and display results so farz-bz--bufferr!   z%Buffer stdout and stderr during testsz-kr;   Zappendz.Only run tests which match the given substring)rD   rE   rG   rF   )	argparseArgumentParseradd_argumentZintr   r   r!   r;   r   )r)   parserr   r	   rA   ZTestProgram._getParentArgParser   sr   ((%8D+K#0!1 	 	3 	D)+#0!/ 	 	1 	J[#/!E 	 	G 	M#$(#!N 	 	P == l'3%B   D "DM??"il'3%N   P $DO;;jx'3%L   N  DK  (+='/6M%U   W %'D!r   c                s    \         P                  ! V.R R7      pV P                  Vn        V P                  Vn        VP                  RRRR7       V# )TZparentsZcolorr7   r   z?a list of any number of test modules, classes and test methods.)nargsrF   )rH   rI   r&   r+   r1   r/   rJ   )r)   parentrK   s   && r	   rB   ZTestProgram._getMainArgParser   sR    ((&Fmm ,,G3"8 	 	9 r   c                sh   \         P                  ! V.R R7      pRV P                  ,          Vn        RVn        VP                  RRRRR7       VP                  R	R
RRR7       VP                  RRRRR7       R F4  pVP                  VR\         P                  \         P                  R7       K6  	  V# )TrL   z%s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryr<   z*Directory to start discovery ('.' default))rD   rF   z-pz	--patternr   z+Pattern to match tests ('test*.py' default)z-tz--top-level-directoryr=   z<Top level directory of project (defaults to start directory)Z?)rM   r   rF   )r<   r   r=   )rH   rI   r&   r+   ZepilogrJ   ZSUPPRESS)r)   rN   rK   Zargs   &&  r	   rC   Z"TestProgram._getDiscoveryArgParser   s    ((&F#dmm3$ 	D"5G!M 	 	OD+I!N 	 	PD"9"4 	 	5 /C3(0(9(9%-%6%6   8 /
 r   c                s    R V n         RV n        RV n        Ve:   V P                  f   V P	                  4        V P                  P                  W4       V P                  RVR7       R# )r   ztest*.pyNT)r?   r@   )r<   r   r=   r.   r3   r6   r:   )r)   r   r@   s   &&&r	   r5   ZTestProgram._do_discovery   s\    
!%%-$$&""--d9V<r   c           	     s$   V P                   '       d   \        4        V P                  f   \        P                  V n        \        V P                  \        4      '       dW     V P                  V P                  V P                  V P                  V P                  V P                  V P                  R7      pMV P                  pVP                  V P                  4      V n        V P"                  '       d   V P                   P%                  4       '       g   \&        P"                  ! ^4       R # V P                   P(                  ^ 8X  dA   \+        V P                   P,                  4      ^ 8X  d   \&        P"                  ! \.        4       R # \&        P"                  ! ^ 4       R # R #   \         dB    T P                  T P                  T P                  T P                  T P                  R7      p EL*i ; i  \         d    T P                  4       p ELLi ; i)N)r    r   r!   r"   r   r   )r    r   r!   r"   )r   r   r$   r   ZTextTestRunnerr   rG   r    r   r!   r"   r   r   Z	TypeErrorZrunr>   resultr   ZwasSuccessfulr   ZtestsRunr4   Zskipped_NO_TESTS_EXITCODE)r)   r$   r   r	   r(   ZTestProgram.runTests   sj   ?????"$33DOdoot,,/I!%4>>:>--8<:>--;?>>;?>> "1 "KJ" J nnTYY/999;;,,..%%*s4;;3F3F/G1/L+,  ! I!%4>>:>--8<:>-- "1 "IJI  /!__.
/s,   "AF! !AG-)G0 ,G--G0 0HH)r.   r,   r!   r   r#   r   r   r   r   r   r&   rO   r<   r   r>   r%   r;   r8   r$   r=   r    r"   )FNr   )r9   Z
__module__Z__qualname__Z__firstlineno__r   r    r   r   r!   r&   r"   r;   r.   r    ZdefaultTestLoaderr*   r1   r'   r:   r3   rA   rB   rC   r5   r(   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r	   r   r   8   s     
 FINRRHRzRFRXR;K(d#0H0HTd$& >C& #	&P=:
HL
$L	*=! !r   r   )r   rH   r   Z r    r   Zsignalsr   Z
__unittestrP   r-   r0   r
   r   r   Zobjectr   Zmainr   r   r	   <module>rQ      sT      	  #
  3]& ]@ r   