
    z%i                    \   	 d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Zd dlZd dlZd dlZd dlZej                  s ej                   d      d Z G d d      Z G d d	e      Z G d
 d      Zd Zd Z G d d      Z G d dej2                        Zd Z G d d      Zd Zd Z eed      r ej@                         sd Z!d Z"d Z#d Z$d Z% G d d      Z&e&d        Z'd  Z(d! Z) G d" d#ejT                  jV                  ejT                  jX                        Z- G d$ d%      Z.ej^                  d&        Z0d' Z1d( Z2	  ejf                  d)       d*Z4e4rd, Z6d- Z7d. Z8d/ Z9d0 Z:d1 Z;e<d2k(  r)d3ejz                  v r	 e;d4       y ej|                          yy# e5$ r d+Z4Y Lw xY w)5    )support)import_helperNz%test_CLI requires subprocess support.c                     	 | | z   S N vs    E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_doctest.pysample_funcr       s     Q3J    c                       e Zd Z	 d Zd Zd Zd Z ee      Zd Z e	e      Z e
ed      ZdZe	e
d	               Z G d
 d      Zy)SampleClassc                     	 || _         y r   valselfr   s     r
   __init__zSampleClass.__init__;       	 r   c                 H    	 t        | j                  | j                  z         S r   )r   r   r   s    r
   doublezSampleClass.doubleB   s!    	 488dhh.//r   c                     	 | j                   S r   r   r   s    r
   getzSampleClass.getI       	 xxr   c                     	 | dz   S )N   r   r   s    r
   a_staticmethodzSampleClass.a_staticmethodP   s    	 s
r   c                     	 |dz   S )N   r   )clsr	   s     r
   a_classmethodzSampleClass.a_classmethodX   s    	 s
r   zB
        >>> print(SampleClass(22).a_property)
        22
        )doc*   c                     	 | j                   S r   )a_class_attribute)r!   s    r
   a_classmethod_propertyz"SampleClass.a_classmethod_propertyi   s    	 $$$r   c                   "    e Zd Z	 ddZd Zd Zy)SampleClass.NestedClassc                     	 || _         y r   r   r   s     r
   r   z SampleClass.NestedClass.__init__y   s     DHr   c                 Z    t         j                  | j                  | j                  z        S r   )r   NestedClassr   r   s    r
   squarezSampleClass.NestedClass.square   s     **488DHH+<==r   c                     | j                   S r   r   r   s    r
   r   zSampleClass.NestedClass.get   s    88Or   N)r   )__name__
__module____qualname__r   r-   r   r   r   r
   r,   r)   r   s    			>	r   r,   N)r/   r0   r1   r   r   r   r   staticmethodr"   classmethodproperty
a_propertyr&   r'   r,   r   r   r
   r   r   +   su    0 ".1N  .M# $ J
 %  % r   r   c                        e Zd Z	 d Zd Zd Zy)SampleNewStyleClassc                     	 || _         y r   r   r   s     r
   r   zSampleNewStyleClass.__init__   r   r   c                 H    	 t        | j                  | j                  z         S r   )r7   r   r   s    r
   r   zSampleNewStyleClass.double   s!    	 #488dhh#677r   c                     	 | j                   S r   r   r   s    r
   r   zSampleNewStyleClass.get   r   r   N)r/   r0   r1   r   r   r   r   r   r
   r7   r7      s    8r   r7   c                       e Zd Z	 d Zd Zy)
_FakeInputc                     || _         y r   )lines)r   r>   s     r
   r   z_FakeInput.__init__   s	    
r   c                 X    | j                   j                  d      }t        |       |dz   S )Nr   
)r>   popprint)r   lines     r
   readlinez_FakeInput.readline   s%    zz~~a dDyr   N)r/   r0   r1   r   rD   r   r   r
   r<   r<      s    r   r<   c                       y r   r   r   r   r
   test_ExamplerF          r   c                       y r   r   r   r   r
   test_DocTestrI   0  rG   r   c                   2    e Zd Zd Zej
                  rd Zyy)test_DocTestFinderc                       y r   r   r   r   r
   basicsztest_DocTestFinder.basics  rG   r   c                       y r   r   r   r   r
   non_Python_modulesz%test_DocTestFinder.non_Python_modules  rG   r   N)r/   r0   r1   rM   int__doc__rO   r   r   r
   rK   rK     s    CJ {{$	 r   rK   c                       e Zd Zd Zd Zy)TestDocTestFinderc                     ddl m} t        j                  d      }||j                  d<   t        j                         }| j                  |j                  |      g        y )Nr   )calldummyinject_call)	unittest.mockrU   types
ModuleType__dict__doctestDocTestFinderassertEqualfind)r   rU   dummy_modulefinders       r
   test_issue35753z!TestDocTestFinder.test_issue35753  sN     	'''0/3m,&&(\2B7r   c                    d}t        j                         5 }t        j                  j	                  ||      }t        j
                  |       t        j                  j                  |       	 t        j                  |      }t        j                  |       t        j                  j                          t        j                  d      }t        j                  d      }| j                  t!        |j#                  |            d       | j                  t!        |j#                  |            d       d d d        y # t        j                  |       t        j                  j                          w xY w# 1 sw Y   y xY w)Ndoctest_empty_pkgF)exclude_emptyTr   r   )tempfileTemporaryDirectoryospathjoinmkdirsysappend	importlibimport_moduler   forgetrA   r\   r]   r^   lenr_   )r   pkg_name
parent_dirpkg_dirmodinclude_empty_finderexclude_empty_finders          r
   test_empty_namespace_packagez.TestDocTestFinder.test_empty_namespace_package  s   &((* 	Ejggll:x8GHHWHHOOJ'--h7$$X.#*#8#8u#M #*#8#8t#L S!5!:!:3!?@!DS!5!:!:3!?@!D	E 	E $$X.	E 	Es%   AE6-D>B3E6>5E33E66E?N)r/   r0   r1   rb   rx   r   r   r
   rS   rS     s    8Er   rS   c                       y r   r   r   r   r
   test_DocTestParserrz     rG   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)test_DocTestRunnerc                       y r   r   r   r   r
   rM   ztest_DocTestRunner.basics9  rG   r   c                       y r   r   r   r   r
   verbose_flagztest_DocTestRunner.verbose_flagv  rG   r   c                       y r   r   r   r   r
   
exceptionsztest_DocTestRunner.exceptions  rG   r   c                       y r   r   r   r   r
   displayhookztest_DocTestRunner.displayhook  rG   r   c                       y r   r   r   r   r
   optionflagsztest_DocTestRunner.optionflags  rG   r   c                       y r   r   r   r   r
   option_directivesz$test_DocTestRunner.option_directivesu  rG   r   N)	r/   r0   r1   rM   r   r   r   r   r   r   r   r
   r|   r|   8  s(    <zBFm\:obVr   r|   c                       y r   r   r   r   r
   test_testsourcer   M  rG   r   c                       y r   r   r   r   r
   
test_debugr   u  rG   r   gettracec                       y r   r   r   r   r
   test_pdb_set_tracer     s    C	r   c                       y r   r   r   r   r
   test_pdb_set_trace_nestedr     s    S	r   c                       y r   r   r   r   r
   test_DocTestSuiter   p  s    rr   c                       y r   r   r   r   r
   test_DocFileSuiter     s    cr   c                       y r   r   r   r   r
   test_trailing_space_in_testr   	  s    r   c                       e Zd Zd Zd Zy)Wrapperc                 >    || _         t        j                  | |       y r   )func	functoolsupdate_wrapper)r   r   s     r
   r   zWrapper.__init__	  s    	  t,r   c                 (     | j                   |i | y r   )r   )r   argskwargss      r
   __call__zWrapper.__call__	  s    		4"6"r   N)r/   r0   r1   r   r   r   r   r
   r   r   	  s    -#r   r   c                       y r   r   r   r   r
   test_look_in_unwrappedr   	  s    r   c                       y r   r   r   r   r
   test_unittest_reportflagsr   	  s    Lr   c                       y r   r   r   r   r
   test_testfiler   	  rG   r   c                       e Zd ZddZd Zy)TestImporterNc                 F    t         j                  j                  |||       S )N)loader)rn   utilspec_from_file_location)r   fullnameri   targets       r
   	find_speczTestImporter.find_spec
  s    ~~55hT5RRr   c                 h    t        |d      5 }|j                         cd d d        S # 1 sw Y   y xY w)Nrb)mode)openread)r   ri   fs      r
   get_datazTestImporter.get_data
  s,    $T" 	a668	 	 	s   (1r   )r/   r0   r1   r   r   r   r   r
   r   r   
  s    Sr   r   c                       e Zd Zd Zd Zy)TestHookc                    t         j                  d d  | _        t         j                  d d  | _        t         j                  d d  | _        t         j                  j                  |       t         j                  j                          t         j                  j                         | _
        t               | _        t         j                  j                  | j                         y r   )rl   ri   sys_path	meta_path
path_hooksrm   path_importer_cacheclearmodulescopymodules_beforer   importer)r   pathdirs     r
   r   zTestHook.__init__
  s    q)..+ %%'!kk..0$T]]+r   c                 |   | j                   t        j                  d d  | j                  t        j                  d d  | j                  t        j                  d d  t        j
                  j                          t        j                  j                          t        j                  j                  | j                         y r   )
r   rl   ri   r   r   r   r   r   updater   r   s    r
   removezTestHook.remove
  sq    mm>>a OOq%%'4../r   N)r/   r0   r1   r   r   r   r   r
   r   r   
  s    ,0r   r   c              #   v   K   t        |       }	 | |j                          y # |j                          w xY wwr   )r   r   )r   hooks     r
   	test_hookr   
  s,     GD
s   9$ 969c                       y r   r   r   r   r
   test_lineendingsr   
  rG   r   c                       y r   r   r   r   r
   test_testmodr     rG   r   u   foo-bär@baz.pyTFc                       y r   r   r   r   r
   test_unicoder   (  rG   r   c                       y r   r   r   r   r
   test_CLIr   C  rG   r   c                       	 y r   r   r   r   r
   %test_no_trailing_whitespace_strippingr   )  s    "r   c                       y r   r   r   r   r
   $test_run_doctestsuite_multiple_timesr   S  s    r   c                     |j                  t        j                  t                     |j                  t        j                                |S r   )addTestr\   DocTestSuite)r   testspatterns      r
   
load_testsr   c  s3    	MM'&&w/0	MM'&&()Lr   c                    t        j                  d      }|j                  t        j                  t        j
                  gdd      }|j                  d       |j                         }t        d       |j                  dd|        y )	Ntracer   r   )
ignoredirsr   countztest_main()zWriting coverage results...T)show_missingsummarycoverdir)
r   ro   Tracerl   base_prefixbase_exec_prefixrunresultsrB   write_results)r   r   tracerrs       r
   test_coverager   i  st    ''0E[[S__c6J6J$L   +F
JJ}A	
'(OOt%  'r   __main__z-cz/tmp/doctest.cover)?testr   test.supportr   r\   r   rh   rl   rn   importlib.abcimportlib.utilunittestrf   rY   
contextlibhas_subprocess_supportSkipTestr   r   objectr7   r<   rF   rI   rK   TestCaserS   rz   r|   r   r   hasattrr   r   r   r   r   r   r   r   r   r   abcMetaPathFinderResourceLoaderr   r   contextmanagerr   r   r   fsencodesupports_unicodeUnicodeEncodeErrorr   r   r   r   r   r   r/   argvmainr   r   r
   <module>r     s    &   	 
        %%
(

C
DD	W Wr& @ &wrCJk k\	E)) E<5nS Sj &P< sJ|s||~DLTlsjdL# # 	 	M^n`9==//1M1M 0 0*  HT	BKK!"
 6dL'T ' zsxx*+	 c
  s   
F! !F+*F+