
    2hh
                       S SK Jr  S SKJr  S SKJr  S SKrS SKrS SKrS SK	r	S SK
r
S SKr
S SKr
S SKrS SKrS SKrS SKrS SKrS rS r " S S5      r " S	 S
\5      rS rS r " S S5      r " S S\R4                  5      r " S S\R4                  5      rS r " S S5      rS rS r \!" \	S5      (       a  \	RD                  " 5       (       d  S r#S r$S r%S r&S r'S r(S r) " S  S!5      r*\*S" 5       r+S# r,\" \RZ                  " S$S%95      S& 5       r.S' r/S( r0S) r1 " S* S+\
Rd                  Rf                  5      r4 " S, S-5      r5\Rl                  S. 5       r7S/ r8S0 r9S1 r: \Rv                  " S25        S3r<\<(       a  S4 r>\" \R~                  (       + 5      S5 5       r@S6 rAS7 rBS8 rCS9 rDSAS: jrES; rFS< rGS= rH\IS>:X  a  \R                  " S?S@9  gg! \= a    S$r< Ncf = f)B    )support)import_helper)	FakeInputNc                    ^  U 4S jnU$ )Nc                 N   > T(       a  [         R                  (       a  SU l        U $ )Nz>>> pass  # doctest: +SKIP)r   HAVE_DOCSTRINGS__doc__)func	conditions    G/opt/python-3.13.8/usr/lib/python3.13/test/test_doctest/test_doctest.py	decorator"doctest_skip_if.<locals>.decorator   s    007DL     )r   r   s   ` r   doctest_skip_ifr      s     r   c                 
    X -   $ Nr   vs    r   sample_funcr   &   s     3Jr   c                       \ rS rSrS rS rS rS rS r\	" \5      rS r
\" \
5      r
\" \\SS	9rS
r\R                   S 5       r " S S5      rSrg)SampleClass1   c                     Xl         g r   valselfr   s     r   __init__SampleClass.__init__A   	    
 r   c                 F    [        U R                  U R                  -   5      $ r   )r   r   r   s    r   doubleSampleClass.doubleH   s    
 488dhh.//r   c                     U R                   $ r   r   r#   s    r   getSampleClass.getO       
 xxr   c                     Xl         g r   r   r   s     r   setterSampleClass.setterV   s	     r   c                     U S-   $ )N   r   r   s    r   a_staticmethodSampleClass.a_staticmethod_   s    
 s
r   c                     US-   $ )N   r   )clsr   s     r   a_classmethodSampleClass.a_classmethodg   s     s
r   zB
        >>> print(SampleClass(22).a_property)
        22
        )doc*   c                     g)Nhellor   r#   s    r   a_cached_propertySampleClass.a_cached_propertyx   s     r   c                   *    \ rS rSrSS jrS rS rSrg)SampleClass.NestedClass   c                     Xl         g r   r   r   s     r   r    SampleClass.NestedClass.__init__   s	    
 Hr   c                 Z    [         R                  U R                  U R                  -  5      $ r   )r   NestedClassr   r#   s    r   squareSampleClass.NestedClass.square   s     **488DHH+<==r   c                     U R                   $ r   r   r#   s    r   r'   SampleClass.NestedClass.get   s    88Or   r   N)r   )__name__
__module____qualname____firstlineno__r   rC   r'   __static_attributes__r   r   r   rB   r=      s    		>	r   rB   r   N)rG   rH   rI   rJ   r   r$   r'   r+   r/   staticmethodr4   classmethodproperty
a_propertya_class_attribute	functoolscached_propertyr:   rB   rK   r   r   r   r   r   1   su     0 ".1N  .M#v , J
   r   r   c                   &    \ rS rSrS rS rS rSrg)SampleNewStyleClass   c                     Xl         g r   r   r   s     r   r   SampleNewStyleClass.__init__   r!   r   c                 F    [        U R                  U R                  -   5      $ r   )rT   r   r#   s    r   r$   SampleNewStyleClass.double   s    
 #488dhh#677r   c                     U R                   $ r   r   r#   s    r   r'   SampleNewStyleClass.get   r)   r   r   N)rG   rH   rI   rJ   r   r$   r'   rK   r   r   r   rT   rT      s    8r   rT   c                      g r   r   r   r   r   test_Exampler]          r   c                      g r   r   r   r   r   test_DocTestr`   +  r^   r   c                   H    \ rS rSrS r\R                  (       a  S rSrgSrg)test_DocTestFinderi  c                      g r   r   r   r   r   basicstest_DocTestFinder.basics  r^   r   c                      g r   r   r   r   r   non_Python_modules%test_DocTestFinder.non_Python_modules  r^   r   r   N)	rG   rH   rI   rJ   rd   intr	   rg   rK   r   r   r   rb   rb     s    \| {{$	 r   rb   c                       \ rS rSrS rSrg)TestDocTesti  c                    SnS nXl         [        R                  " 5       R                  U5      S   n[        R
                  " 5          [        R                  " 5          [        R                  " SS9R                  U5      nS S S 5        S S S 5        U R                  W[        R                  5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  [        U5      S	5        Uu  pEU R                  XE4S	5        g ! , (       d  f       N= f! , (       d  f       N= f)
Nz
            >>> 1 + 1
            11
            >>> 2 + 3      # doctest: +SKIP
            "23"
            >>> 5 + 7
            57
        c                      g r   r   r   r   r   myfunc$TestDocTest.test_run.<locals>.myfunc  s    r   r   F)verboser2      r.   )r2   rq   )r	   doctestDocTestFinderfindr   captured_stdoutcaptured_stderrDocTestRunnerrunassertIsInstanceTestResultsassertEqualfailed	attemptedskippedtuple)r   testrn   resultsxys         r   test_runTestDocTest.test_run
  s   	 $$&++F3A6$$&((*!//>BB4H + '
 	gw':':;+**A.!,w0!( +* '&s$   E
$D9E
9
E	E


Er   N)rG   rH   rI   rJ   r   rK   r   r   r   rk   rk     s    )r   rk   c                        \ rS rSrS rS rSrg)TestDocTestFinderi(  c                     SSK Jn  [        R                  " S5      nXR                  S'   [
        R                  " 5       nU R                  UR                  U5      / 5        g )Nr   )calldummyinject_call)	unittest.mockr   types
ModuleType__dict__rr   rs   r{   rt   )r   r   dummy_modulefinders       r   test_issue35753!TestDocTestFinder.test_issue35753*  sL     	'''0/3m,&&(\2B7r   c                    Sn[         R                  " 5        n[        R                  R	                  X!5      n[        R
                  " U5        [        R                  R                  U5         [        R                  " U5      n[        R                  " U5        [        R                  R                  5         [        R                  " SS9n[        R                  " SS9nU R                  [!        UR#                  U5      5      S5        U R                  [!        UR#                  U5      5      S5        S S S 5        g ! [        R                  " U5        [        R                  R                  5         f = f! , (       d  f       g = f)Ndoctest_empty_pkgF)exclude_emptyTr.   r   )tempfileTemporaryDirectoryospathjoinmkdirsysappend	importlibimport_moduler   forgetpoprr   rs   r{   lenrt   )r   pkg_name
parent_dirpkg_dirmodinclude_empty_finderexclude_empty_finders          r   test_empty_namespace_package.TestDocTestFinder.test_empty_namespace_package4  s   &((*jggll:8GHHWHHOOJ'--h7$$X.#*#8#8u#M #*#8#8t#L S!5!:!:3!?@!DS!5!:!:3!?@!D +* $$X. +*s%   AE6.D=B0E6=6E33E66
Fr   N)rG   rH   rI   rJ   r   r   rK   r   r   r   r   r   (  s    8Er   r   c                      g r   r   r   r   r   test_DocTestParserr   F  r^   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
test_DocTestRunneri}  c                      g r   r   r   r   r   rd   test_DocTestRunner.basics~  r^   r   c                      g r   r   r   r   r   verbose_flagtest_DocTestRunner.verbose_flag  r^   r   c                      g r   r   r   r   r   
exceptionstest_DocTestRunner.exceptions  r^   r   c                      g r   r   r   r   r   displayhooktest_DocTestRunner.displayhook  r^   r   c                      g r   r   r   r   r   optionflagstest_DocTestRunner.optionflags  r^   r   c                      g r   r   r   r   r   option_directives$test_DocTestRunner.option_directives  r^   r   r   N)rG   rH   rI   rJ   rd   r   r   r   r   r   rK   r   r   r   r   r   }  s)    ADBFrf:sj[r   r   c                      g r   r   r   r   r   test_testsourcer     r^   r   c                      g r   r   r   r   r   
test_debugr     r^   r   gettracec                      g r   r   r   r   r   test_pdb_set_tracer     r^   r   c                      g r   r   r   r   r   test_pdb_set_trace_nestedr   y  r^   r   c                      g r   r   r   r   r   test_DocTestSuiter     r^   r   c                      g r   r   r   r   r   test_DocTestSuite_errorsr   b	  r^   r   c                      g r   r   r   r   r   test_DocFileSuiter   	
  r^   r   c                      g r   r   r   r   r   test_DocFileSuite_errorsr   
  r^   r   c                      g r   r   r   r   r   test_trailing_space_in_testr   
  r^   r   c                        \ rS rSrS rS rSrg)Wrapperi  c                 <    Xl         [        R                  " X5        g r   )r
   rQ   update_wrapper)r   r
   s     r   r   Wrapper.__init__  s    	  ,r   c                 (    U R                   " U0 UD6  g r   r
   )r   argskwargss      r   __call__Wrapper.__call__  s    		4"6"r   r   N)rG   rH   rI   rJ   r   r   rK   r   r   r   r   r     s    -#r   r   c                      g r   r   r   r   r   wrappedr     r^   r   c                      g r   r   r   r   r   test_look_in_unwrappedr   $  r^   r   F)cpythonc                      g r   r   r   r   r   test_wrapped_c_funcr   3  r^   r   c                      g r   r   r   r   r   test_unittest_reportflagsr   A  r^   r   c                      g r   r   r   r   r   test_testfiler     r^   r   c                      g r   r   r   r   r   test_testfile_errorsr   J  r^   r   c                   0    \ rS rSrSS jrS rS rS rSrg)	TestImporteri  Nc                 >    [         R                  R                  XU S9$ )N)loader)r   utilspec_from_file_location)r   fullnamer   targets       r   	find_specTestImporter.find_spec  s    ~~55hT5RRr   c                 l    [        USS9 nUR                  5       sS S S 5        $ ! , (       d  f       g = f)Nrb)mode)openread)r   r   fs      r   get_dataTestImporter.get_data  s#    $T"a668 #""s   %
3c                     [         er   )ImportError)r   modules     r   exec_moduleTestImporter.exec_module  s    r   c                     g r   r   )r   specs     r   create_moduleTestImporter.create_module  s    r   r   r   )	rG   rH   rI   rJ   r   r   r  r  rK   r   r   r   r   r     s    Sr   r   c                        \ rS rSrS rS rSrg)TestHooki  c                    [         R                  S S  U l        [         R                  S S  U l        [         R                  S S  U l        [         R                  R                  U5        [         R                  R                  5         [         R                  R                  5       U l
        [        5       U l        [         R                  R                  U R                  5        g r   )r   r   sys_path	meta_path
path_hooksr   path_importer_cacheclearmodulescopymodules_beforer   importer)r   pathdirs     r   r   TestHook.__init__  s    q)..+ %%'!kk..0$T]]+r   c                 |   U R                   [        R                  S S & U R                  [        R                  S S & U R                  [        R                  S S & [        R
                  R                  5         [        R                  R                  5         [        R                  R                  U R                  5        g r   )
r
  r   r   r  r  r  r  r  updater  r#   s    r   removeTestHook.remove  sq    mm>>a OOq%%'4../r   )r  r  r  r  r
  N)rG   rH   rI   rJ   r   r  rK   r   r   r   r  r    s    ,0r   r  c              #   v   #    [        U 5      n Uv   UR                  5         g ! UR                  5         f = f7fr   )r  r  )r  hooks     r   	test_hookr    s+     GD
s   9$ 969c                      g r   r   r   r   r   test_lineendingsr    r^   r   c                      g r   r   r   r   r   test_testmodr    r^   r   c                      g r   r   r   r   r   test_testmod_errorsr!    r^   r   u   foo-bär@baz.pyTc                      g r   r   r   r   r   test_unicoder#    r^   r   c                      g r   r   r   r   r   test_CLIr%    r^   r   c                      g r   r   r   r   r   %test_no_trailing_whitespace_strippingr'    s    $r   c                      g r   r   r   r   r   $test_run_doctestsuite_multiple_timesr)    r^   r   c                 >    [        S5      nUR                  U 5        Ue)NText
ValueErroradd_note)noteexcs     r   test_exception_with_noter1    s     r V
CLL
Ir   c                  `    [        S5      n U R                  S5        U R                  S5        U e)Nr+  OneTwor,  )r0  s    r   "test_exception_with_multiple_notesr5  !  s+     V
CLLLL
Ir   c                 X    U " SS5      nUR                  U(       a  S5        UeS5        Ue)Nerror)zx.py   Nz
bad syntax	Note
LineNote)r.  )r3   	multiliner0  s      r   test_syntax_error_with_noter<  0  s2    D g7
8CLL7
I 177
Ir   c                  D    SSK Jn   U " S5      nUR                  S5        Ue)Nr   )
ParseErrorzerror
errorr9  )xml.etree.ElementTreer>  r.  )r>  r0  s     r   &test_syntax_error_subclass_from_stdlibr@  W  s"     1
^
$CLL
Ir   c                      g r   r   r   r   r   .test_syntax_error_with_incorrect_expected_noterB  i  r^   r   c                     UR                  [        R                  " [        5      5        UR                  [        R                  " 5       5        U$ r   )addTestrr   DocTestSuite)r   testspatterns      r   
load_testsrH    s3    	MM'&&w/0	MM'&&()Lr   __main__ztest.test_doctest.test_doctest)r   )F)Kr   r   test.supportr   test.support.pty_helperr   rr   rQ   r   r   r   importlib.abcimportlib.utilunittestr   r   
contextlib	_colorizer   r   r   objectrT   r]   r`   rb   TestCaserk   r   r   r   r   r   hasattrr   r   r   r   r   r   r   r   r   r   r   check_impl_detailr   r   r   r   abcMetaPathFinderr   r  contextmanagerr  r  r  r!  fsencodesupports_unicodeUnicodeEncodeErrorr#  has_subprocess_supportr%  r'  r)  r1  r5  r<  r@  rB  rH  rG   mainr   r   r   <module>r]     sQ  
  & -   	 
         	_ _B& @wrTlD DN
)(## )@E)) E<5nf fP!&P< sJs||~~KZXtM^eNtlIV# # 	 	 **59: ;SjrhAF9==// 0 0*  HT	ENKK!"
 !H W3334d 5dL'T ;|$N$#L zMM9: y  s   #G GG