
    (ph                     "   S r SSKrSSKrSSKrSSKJrJr  \(       a  SSKJrJ	r	  SSK
Jr  SSKJrJrJr  \R                  R!                  \(       + SS	9 " S
 S\5      5       r\R                  R!                  \(       + SS	9 " S S\5      5       rg)z@Tests to ensure that the lxml tree builder generates good trees.    N   )LXML_PRESENTLXML_VERSION)LXMLTreeBuilderLXMLTreeBuilderForXML)BeautifulStoneSoup)HTMLTreeBuilderSmokeTestXMLTreeBuilderSmokeTestSOUP_SIEVE_PRESENTz;lxml seems not to be present, not testing its tree builder.reasonc                       \ rS rSrSr\S 5       rS rS r\	R                  R                  \(       + =(       d    \S:  SS9S	 5       rS
 rS rSrg)TestLXMLTreeBuilder   !See ``HTMLTreeBuilderSmokeTest``.c                     [         $ N)r   selfs    F/var/www/html/venv/lib/python3.13/site-packages/bs4/tests/test_lxml.pydefault_builder#TestLXMLTreeBuilder.default_builder   s        c                 p    U R                  SS5        U R                  SS5        U R                  SS5        g )Nz<p>foo&#10000000000000;bar</p>z<p>foobar</p>z<p>foo&#x10000000000000;bar</p>z<p>foo&#1000000000;bar</p>)assert_soupr   s    r   test_out_of_range_entity,TestLXMLTreeBuilder.test_out_of_range_entity    s5    9?K:OL5Gr   c                     g r    r   s    r   *test_entities_in_foreign_document_encoding>TestLXMLTreeBuilder.test_entities_in_foreign_document_encoding%   s     	r   )         r   z@Skipping doctype test for old version of lxml to avoid segfault.r   c                 p    U R                  S5      nUR                  S   nSUR                  5       :X  d   eg )Nz
<!DOCTYPE>r    )soupcontentsstrip)r   r'   doctypes      r   test_empty_doctype&TestLXMLTreeBuilder.test_empty_doctype.   s4    
 yy&--"W]]_$$$r   c                    [         R                  " SS9 n[        S5      nS S S 5        S[        WR                  5      :X  d   eWu  nUR
                  [        :X  d   eS[        UR                  5      ;   d   eg ! , (       d  f       N_= f)NT)recordz<b />z<b/>z+The BeautifulStoneSoup class was deprecated)warningscatch_warningsr   strbfilename__file__message)r   wr'   warnings       r   %test_beautifulstonesoup_is_xml_parser9TestLXMLTreeBuilder.test_beautifulstonesoup_is_xml_parser7   st     $$D1Q%g.D 2TVV$$$	8+++<GOO@TTTT 21s   A::
Bc                     U R                  SSS9nS UR                  R                  L d   eS UR                  R                  L d   eg )Nz=
   <p>

<sourceline>
<b>text</b></sourceline><sourcepos></p>T)store_line_numbers)r'   p
sourceline	sourceposr   r'   s     r   test_tracking_line_numbers.TestLXMLTreeBuilder.test_tracking_line_numbersA   sO     yyO#  
 tvv(((((tvv'''''r   r   N)__name__
__module____qualname____firstlineno____doc__propertyr   r   r    pytestmarkskipifr   r   r+   r8   r@   __static_attributes__r   r   r   r   r      sj    
 , H
 [[7L<7Q  %	%
U(r   r   z?lxml seems not to be present, not testing its XML tree builder.c                   ~    \ rS rSrSr\S 5       rS r\R                  R                  \(       + SS9S 5       rS rS	rg
)TestLXMLXMLTreeBuilderQ   r   c                     [         $ r   )r   r   s    r   r   &TestLXMLXMLTreeBuilder.default_builderX   s    $$r   c                 H   U R                  S5      nUR                  SSSS.:X  d   eUR                  R                  SS0:X  d   eUR                  R                  SSS.:X  d   eUR                  R                  SSS.:X  d   eUR
                  R                  SSS.:X  d   eg )	Nam  <?xml version="1.1"?>
<root><tag xmlns="http://unprefixed-namespace.com">content</tag><prefix:tag2 xmlns:prefix="http://prefixed-namespace.com">content</prefix:tag2><prefix2:tag3 xmlns:prefix2="http://another-namespace.com"><subtag xmlns="http://another-unprefixed-namespace.com"><subsubtag xmlns="http://yet-another-unprefixed-namespace.com"></prefix2:tag3></root>z$http://www.w3.org/XML/1998/namespacezhttp://prefixed-namespace.comzhttp://another-namespace.com)xmlprefixprefix2rR   )rS   rR   )rT   rR   )r'   _namespacestagtag2subtag	subsubtagr?   s     r   test_namespace_indexing.TestLXMLXMLTreeBuilder.test_namespace_indexing\   s    yy

& 955$
 
 	
 
 xx##9(
 
 	
 
 yy$$59)
 
 	
 

 {{&&59+
 
 	
 

 ~~))59.
 
 	
 
r   zSoup Sieve not installedr   c                    U R                  S5      nUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  S5      b   eUR                  SUR                  R                  S9R                  S:X  d   eUR                  R                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  S	5      R                  S:X  d   eUR                  R                  S	5      R                  S:X  d   eg )
Nz<?xml version="1.1"?>
<root><tag xmlns="http://unprefixed-namespace.com">content</tag><prefix:tag2 xmlns:prefix="http://prefixed-namespace.com">content</tag><subtag xmlns:prefix="http://another-namespace-same-prefix.com"><prefix:tag3></subtag></root>rV   zprefix|tag2rW   zprefix|tag3)
namespacestag3zprefix:tag2zprefix:tag3)r'   
select_onenamerX   rU   findr?   s     r   /test_namespace_interaction_with_select_and_findFTestLXMLXMLTreeBuilder.test_namespace_interaction_with_select_and_find   s?   
 yy	
 u%**e333}-22f<<< }-555 OOMdkk6M6MONSS	
 {{%%m499VCCC yy$$---yy',,666yy',,666{{.33v===r   c                    U R                  S5      n[        UR                  U R                  5      (       d   e[        R
                  " U5      n[        R                  " U5      nSUR                  R                  :X  d   eUR                  UR                  :w  d   e[        UR                  U R                  5      (       d   eg )Nz<a>some markup</a>zsome markup)	r'   
isinstancebuilderr   pickledumpsloadsastring)r   r'   pickled	unpickleds       r   test_pickle_restores_builder3TestLXMLXMLTreeBuilder.test_pickle_restores_builder   s     yy-.$,,(<(<====,,t$LL)		 2 2222  DLL000)++T-A-ABBBBr   r   N)rB   rC   rD   rE   rF   rG   r   rZ   rH   rI   rJ   r   rb   rn   rK   r   r   r   rM   rM   Q   sT    
 ,% %2
h [[..7QR&> S&>PCr   rM   )rF   rg   rH   r/   r&   r   r   bs4.builder._lxmlr   r   bs4r   r	   r
   r   rI   rJ   r   rM   r   r   r   <module>rr      s    F    (H  H  5(2 5(	5(p L  oC4 oC	oCr   