
    <e!                     (   d dl Z d dlZd dlmZ d dlmZ d dlZd dlZ eddg          Z edddgd	
          Z	 ej
        ed           G d dej                              Z ej
        ed           G d dej                              Z ej
        ed          ej         G d dej                                          Z ej
        ed          ej         G d dej                                          Zd Zedk    r e             dS dS )    N)support)import_fresh_modulezxml.etree.ElementTree_elementtree)freshzxml.etree.cElementTreez	xml.etreeT)r   
deprecatedzrequires _elementtreec                       e Zd Z ej        ej        dz   dd          d             Zd Zd Zd Z	d	 Z
ej        d
             Zd Zd Zd Zd ZdS )	MiscTestsd      F)sizememusedry_runc                     d|z  }t                                           }	 |                     t          |j        |           d }d S # d }w xY w)N   x)cET	XMLParserassertRaisesOverflowErrorfeed)selfr   dataparsers       ,/usr/lib/python3.11/test/test_xml_etree_c.pytest_length_overflowzMiscTests.test_length_overflow   sM    d{	mV[$???DDD4DKKKKs   !A A	c                    t                               d          }d|_        |                     t                    5  |`d d d            n# 1 swxY w Y   |                     |j        d           |                     t                    5  |`d d d            n# 1 swxY w Y   |                     |j                   d|_        |                     t                    5  |`d d d            n# 1 swxY w Y   |                     |j        d           |                     t                    5  |`d d d            n# 1 swxY w Y   |                     |j                   d|_        |                     t                    5  |`d d d            n# 1 swxY w Y   |                     |j        d           |                     t                    5  |`	d d d            n# 1 swxY w Y   |                     |j	        i            ddd|_	        |                     t                    5  |`	d d d            n# 1 swxY w Y   |                     |j	        ddd           d S )NtagTAGTEXTTAILBD)AC)
r   Elementr   r   AttributeErrorassertEqualtextassertIsNonetailattrib)r   elements     r   test_del_attributezMiscTests.test_del_attribute   s   ++e$$~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	e,,,~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	','''~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	v...~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	','''~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	v...~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	,,,"--~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	s)=)=>>>>>s}   AAABB!B C//C36C3/D>>EEFFFG""G&)G&,H;;H?H?c                     t                               d          x}}t          d          D ]}t                               |d          }~~t	          j                     d S )Nrooti@ x)r   r$   range
SubElementr   
gc_collect)r   er.   is       r   test_trashcanzMiscTests.test_trashcan<   s]    ;;v&&&Dv 	' 	'Aq#&&AA    c                 F    d } |             t          j                     d S )Nc                  x    t                                           } 	 t          # t          $ r}|}Y d }~d S d }~ww xY wN)r   r   
ValueError)r   excerrs      r   parser_ref_cyclez9MiscTests.test_parser_ref_cycle.<locals>.parser_ref_cycleJ   sJ    ]]__F     s   " 
949)r   r2   )r   r=   s     r   test_parser_ref_cyclezMiscTests.test_parser_ref_cycleE   s9    
	 	 	 	 	r6   c                 n   t                               d           G fdd          } |            _                                          |            _                                          |            _         |            _                                          |            _         |            _                                          |            _                            ddi                                             |            _                            ddi           d S )Nelemc                       e Zd Z fdZdS )#MiscTests.test_bpo_31728.<locals>.Xc                 L    j          j                                          d S r9   )r'   r)   clear)r   r@   s    r   __del__z+MiscTests.test_bpo_31728.<locals>.X.__del___   s"    				

r6   N)__name__
__module____qualname__rE   )r@   s   r   XrB   ^   s.              r6   rI   r   *   )r   r$   r'   rD   r)   __setstate__)r   rI   r@   s     @r   test_bpo_31728zMiscTests.test_bpo_31728Y   s)    {{6""	 	 	 	 	 	 	 	 	 	 ACC	

ACC	

ACC	ACC	

ACC	ACC	

ACC	5"+&&&

ACC	5"+&&&&&r6   c                    t           j                            t           j                  }|                     t          |j                   |                     t          |j        d            G d d          }|                     t          |j         |                       |                     t          |j        d            | 	                    |j
                   | 	                    |j                   d S )Nfooc                       e Zd Zd ZdS )5MiscTests.test_uninitialized_parser.<locals>.MockFilec                      dS )N  )argss    r   readz:MiscTests.test_uninitialized_parser.<locals>.MockFile.read   s    rr6   N)rF   rG   rH   rU   rS   r6   r   MockFilerP      s#            r6   rV   )r   r   __new__r   r:   closer   _parse_whole
_seteventsr(   entitytarget)r   r   rV   s      r   test_uninitialized_parserz#MiscTests.test_uninitialized_parsery   s     &&s}55*fl333*fk5999	 	 	 	 	 	 	 	 	*f&988::FFF*f&7>>>&-(((&-(((((r6   c           	         t           j                            t           j                  }t          d          D ]8}|                    dddit                               d          gddd           9|                     |j        d           |                     |j        d           |                     |j        d           |                     t          |j
                                                  d	g           |                     t          |          d
           |                     |d         j        d           d S )Nr
   rN   barrJ   childztext goes herezopposite of head)r   r*   	_childrenr'   r)   )r_   rJ   r   r   )r   r$   rW   r0   rK   r&   r   r'   r)   listr*   itemslen)r   r@   r4   s      r   test_setstate_leakszMiscTests.test_setstate_leaks   s-   {""3;//s 	< 	<Aer{-0[[-A-A,B'7'9; ; < < < <
 	5)))$4555$6777dk//1122[MBBBTA&&&ag.....r6   c                     d}t                               t          j        |                    }t	          |           ~t          j                     d S Nz<a></a></b>)r   	iterparseioStringIOnextr   r2   r   XMLr   s      r   test_iterparse_leakszMiscTests.test_iterparse_leaks   sG     r{3//00Vr6   c                     d}t                                           }|                    |           ~t          j                     d S rg   )r   XMLPullParserr   r   r2   rl   s      r   test_xmlpullparser_leaksz"MiscTests.test_xmlpullparser_leaks   sD     ""$$Cr6   c                      G fdd          }t                               dddi                               |                      }|                     |           d S )Nc                       e Zd Z fdZdS );MiscTests.test_dict_disappearing_during_get_item.<locals>.Xc                 H    i _         d t          d          D              dS )Nc                     g | ]}||iS rS   rS   ).0r4   s     r   
<listcomp>zXMiscTests.test_dict_disappearing_during_get_item.<locals>.X.__hash__.<locals>.<listcomp>   s    ---A!Q---r6   i     )r*   r0   r   r3   s    r   __hash__zDMiscTests.test_dict_disappearing_during_get_item.<locals>.X.__hash__   s)    --t----rr6   N)rF   rG   rH   r{   )r3   s   r   rI   rt      s.              r6   rI   r@   r      )r   r$   getr(   )r   rI   rr3   s      @r   &test_dict_disappearing_during_get_itemz0MiscTests.test_dict_disappearing_during_get_item   s}    	 	 	 	 	 	 	 	 	 	 KKA''EE!!##JJ!r6   N)rF   rG   rH   r   
bigmemtest_2Gr   r,   r5   r>   rL   cpython_onlyr]   re   rn   rq   r   rS   r6   r   r	   r	      s         WW[3.q%HHH  IH? ? ?@    (' ' '@ ) ) )/ / /     
 
 
 
 
r6   r	   c                       e Zd Zd ZdS )TestAliasWorkingc                 p    t                               d          }|                     |j        d           d S )NrN   )	cET_aliasr$   r&   r   rz   s     r   test_alias_workingz#TestAliasWorking.test_alias_working   s3    e$$&&&&&r6   N)rF   rG   rH   r   rS   r6   r   r   r      s#        ' ' ' ' 'r6   r   c                        e Zd Zd Zd Zd ZdS )TestAcceleratorImportedc                 P    |                      t          j        j        d           d S Nr   )r&   r   r1   rG   r   s    r   test_correct_import_cETz/TestAcceleratorImported.test_correct_import_cET   s#    2NCCCCCr6   c                 P    |                      t          j        j        d           d S r   )r&   r   r1   rG   r   s    r   test_correct_import_cET_aliasz5TestAcceleratorImported.test_correct_import_cET_alias   s$    -8.IIIIIr6   c                 d    |                      t          j        j        t          j                   d S r9   )assertNotIsInstancer   r$   __init__typesFunctionTyper   s    r   test_parser_comes_from_Cz0TestAcceleratorImported.test_parser_comes_from_C   s(     	  !5u7IJJJJJr6   N)rF   rG   rH   r   r   r   rS   r6   r   r   r      sL        D D DJ J JK K K K Kr6   r   c                   4    e Zd Zd Zej        Zd Zd Zd ZdS )
SizeofTestc                 j    t          j        d          | _        t          j        d          | _        d S )N5PPnnP4P)r   calcobjsizeelementsizestructcalcsizeextrar   s    r   setUpzSizeofTest.setUp   s*    ".t44_X..


r6   c                 p    t                               d          }|                     || j                   d S )Na)r   r$   check_sizeofr   rz   s     r   test_elementzSizeofTest.test_element   s2    KK!T-.....r6   c                     t                               dd          }|                     || j        | j        z              d S )Nr   zabout:)href)r   r$   r   r   r   rz   s     r   test_element_with_attribz#SizeofTest.test_element_with_attrib   s=    KK(K++!T-
:;;;;;r6   c                    t                               d          }t          d          D ]}t                               |d           |                     || j        | j        z   t          j        d          z              d S )Nr      span8P)	r   r$   r0   r1   r   r   r   r   r   )r   r3   r4   s      r   test_element_with_childrenz%SizeofTest.test_element_with_children   s    KKq 	& 	&ANN1f%%%%!T-
:#_T223 	4 	4 	4 	4 	4r6   N)	rF   rG   rH   r   r   r   r   r   r   rS   r6   r   r   r      sZ        / / /
 'L/ / /< < <4 4 4 4 4r6   r   c                      ddl m}  t          j        t          t
          t          t                     |                     t                     d S )Nr   test_xml_etree)module)
testr   r   run_unittestr	   r   r   r   	test_mainr   r   s    r   r   r      sV    ###### 	
 
 
 C(((((r6   __main__)ri   r   r   r   test.support.import_helperr   r   unittestr   r   
skipUnlessTestCaser	   r   r   r   r   r   rF   rS   r6   r   <module>r      s   				        : : : : : :  1!/ 02 2 2 8'5{&C+/1 1 1	
 S122e e e e e! e e 32eP S122' ' ' ' 'x( ' ' 32' S122K K K K Kh/ K K  32K  S1224 4 4 4 4" 4 4  3240) ) ) zIKKKKK r6   