§
    ©öÉg  ã                   ó*  — d Z ddlZddlZddlZddlmZmZ erddlmZm	Z	 ddl
mZ ddlmZmZmZ ej                             e d¬	¦  «         G d
„ de¦  «        ¦   «         Zej                             e d¬	¦  «         G d„ de¦  «        ¦   «         ZdS )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                   ó˜   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zej	         
                    e pedk     d¬¦  «        d„ ¦   «         Zd	„ Zd
„ ZdS )ÚTestLXMLTreeBuilderú!See ``HTMLTreeBuilderSmokeTest``.c                 ó   — t           S ©N)r   ©Úselfs    ú_/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/bs4/tests/test_lxml.pyÚdefault_builderz#TestLXMLTreeBuilder.default_builder   s   € åÐó    c                 óŠ   — |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         d S )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_entityz,TestLXMLTreeBuilder.test_out_of_range_entity    sM   € Ø×ÒÐ9¸?ÑKÔKÐKØ×ÒÐ:¸OÑLÔLÐLØ×ÒÐ5°ÑGÔGÐGÐGÐGr   c                 ó   — d S r   © r   s    r   Ú*test_entities_in_foreign_document_encodingz>TestLXMLTreeBuilder.test_entities_in_foreign_document_encoding%   s	   € ð 	ˆr   )é   é   é   r   z@Skipping doctype test for old version of lxml to avoid segfault.r   c                 ó~   — |                       d¦  «        }|j        d         }d|                     ¦   «         k    sJ ‚d S )Nz
<!DOCTYPE>r   Ú )ÚsoupÚcontentsÚstrip)r   r#   Údoctypes      r   Útest_empty_doctypez&TestLXMLTreeBuilder.test_empty_doctype.   s@   € ð
 �yŠy˜Ñ&Ô&ˆØ”- Ô"ˆØ�W—]’]‘_”_Ò$Ð$Ð$Ð$Ð$Ð$r   c                 ó  — t          j        d¬¦  «        5 }t          d¦  «        }d d d ¦  «         n# 1 swxY w Y   dt          |j        ¦  «        k    sJ ‚|\  }|j        t          k    sJ ‚dt          |j        ¦  «        v sJ ‚d S )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_parserz9TestLXMLTreeBuilder.test_beautifulstonesoup_is_xml_parser7   sÌ   € õ Ô$¨DÐ1Ñ1Ô1ð 	/°QÝ% gÑ.Ô.ˆDð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/à�˜TœV™œÒ$Ð$Ð$Ð$Ø‰	ˆØÔ¥8Ò+Ð+Ð+Ð+Ø<ÅÀGÄOÑ@TÔ@TÐTÐTÐTÐTÐTÐTs   –2²6¹6c                 ót   — |                       dd¬¦  «        }d |j        j        u sJ ‚d |j        j        u sJ ‚d S )Nz=
   <p>

<sourceline>
<b>text</b></sourceline><sourcepos></p>T)Ústore_line_numbers)r#   ÚpÚ
sourcelineÚ	sourcepos©r   r#   s     r   Útest_tracking_line_numbersz.TestLXMLTreeBuilder.test_tracking_line_numbersA   sV   € ð �yŠyØOØ#ð ñ 
ô 
ˆð �t”vÔ(Ð(Ð(Ð(Ð(Ø�t”vÔ'Ð'Ð'Ð'Ð'Ð'Ð'r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   ÚpytestÚmarkÚskipifr   r   r'   r3   r:   r   r   r   r   r      s¿   € € € € € ð
 ,Ð+àðð ñ „XððHð Hð Hð
ð ð ð „[×ÒØÐÐ7˜L¨<Ò7ØQð ñ ô ð%ð %ñ	ô ð%ð
Uð Uð Uð(ð (ð (ð (ð (r   r   z?lxml seems not to be present, not testing its XML tree builder.c                   ó€   — e Zd ZdZed„ ¦   «         Zd„ Zej         	                    e
 d¬¦  «        d„ ¦   «         Zd„ ZdS )	ÚTestLXMLXMLTreeBuilderr   c                 ó   — t           S r   )r   r   s    r   r   z&TestLXMLXMLTreeBuilder.default_builderX   s   € å$Ð$r   c                 óø   — |                       d¦  «        }|j        ddddœk    sJ ‚|j        j        ddik    sJ ‚|j        j        dddœk    sJ ‚|j        j        dddœk    sJ ‚|j        j        dddœk    sJ ‚d S )	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Úprefix2rG   )rH   rG   )rI   rG   )r#   Ú_namespacesÚtagÚtag2ÚsubtagÚ	subsubtagr9   s     r   Útest_namespace_indexingz.TestLXMLXMLTreeBuilder.test_namespace_indexing\   s  € Ø�yŠyðñ

ô 

ˆð& ÔØ9Ø5Ø5ð$
ð $
ò 
ð 
ð 
ð 
ð ŒxÔ#ØÐ9ð(
ò 
ð 
ð 
ð 
ð ŒyÔ$Ø5Ø9ð)
ð )
ò 
ð 
ð 
ð 
ð
 Œ{Ô&Ø5Ø9ð+
ð +
ò 
ð 
ð 
ð 
ð
 Œ~Ô)Ø5Ø9ð.
ð .
ò 
ð 
ð 
ð 
ð 
ð 
r   zSoup Sieve not installedr   c                 óŠ  — |                       d¦  «        }|                     d¦  «        j        dk    sJ ‚|                     d¦  «        j        dk    sJ ‚|                     d¦  «        �J ‚|                     d|j        j        ¬¦  «        j        dk    sJ ‚|j                             d¦  «        j        dk    sJ ‚|                     d¦  «        j        dk    sJ ‚|                     d¦  «        j        dk    sJ ‚|                     d	¦  «        j        dk    sJ ‚|j                             d	¦  «        j        dk    sJ ‚d S )
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>rK   zprefix|tag2rL   zprefix|tag3)Ú
namespacesÚtag3zprefix:tag2zprefix:tag3)r#   Ú
select_oneÚnamerM   rJ   Úfindr9   s     r   Ú/test_namespace_interaction_with_select_and_findzFTestLXMLXMLTreeBuilder.test_namespace_interaction_with_select_and_find�   s^  € ð
 �yŠyðñ	
ô 	
ˆð �Š˜uÑ%Ô%Ô*¨eÒ3Ð3Ð3Ð3Ø�Š˜}Ñ-Ô-Ô2°fÒ<Ð<Ð<Ð<ð �Š˜}Ñ-Ô-Ð5Ð5Ð5ð �OŠO˜M°d´kÔ6MˆOÑNÔNÔSØòð ð ð ð Œ{×%Ò% mÑ4Ô4Ô9¸VÒCÐCÐCÐCð �yŠy˜ÑÔÔ$¨Ò-Ð-Ð-Ð-Ø�yŠy˜Ñ'Ô'Ô,°Ò6Ð6Ð6Ð6Ø�yŠy˜Ñ'Ô'Ô,°Ò6Ð6Ð6Ð6ØŒ{×Ò Ñ.Ô.Ô3°vÒ=Ð=Ð=Ð=Ð=Ð=r   c                 ó8  — |                       d¦  «        }t          |j        | j        ¦  «        sJ ‚t	          j        |¦  «        }t	          j        |¦  «        }d|j        j        k    sJ ‚|j        |j        k    sJ ‚t          |j        | j        ¦  «        sJ ‚d S )Nz<a>some markup</a>zsome markup)	r#   Ú
isinstanceÚbuilderr   ÚpickleÚdumpsÚloadsÚaÚstring)r   r#   ÚpickledÚ	unpickleds       r   Útest_pickle_restores_builderz3TestLXMLXMLTreeBuilder.test_pickle_restores_builder¹   s�   € ð �yŠyÐ-Ñ.Ô.ˆÝ˜$œ,¨Ô(<Ñ=Ô=Ð=Ð=Ð=Ý”,˜tÑ$Ô$ˆÝ”L Ñ)Ô)ˆ	à 	¤Ô 2Ò2Ð2Ð2Ð2ØÔ  D¤LÒ0Ð0Ð0Ð0Ý˜)Ô+¨TÔ-AÑBÔBÐBÐBÐBÐBÐBr   N)r;   r<   r=   r>   r?   r   rO   r@   rA   rB   r   rV   ra   r   r   r   rD   rD   Q   s‘   € € € € € ð
 ,Ð+àð%ð %ñ „Xð%ð2
ð 2
ð 2
ðh „[×ÒÐ.Ð.Ð7QÐÑRÔRð&>ð &>ñ SÔRð&>ðPCð Cð Cð Cð Cr   rD   )r>   rZ   r@   r*   r"   r   r   Úbs4.builder._lxmlr   r   Úbs4r   r	   r
   r   rA   rB   r   rD   r   r   r   ú<module>rd      s‚  ðØ FÐ Fà €€€Ø €€€Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (àð IØHÐHÐHÐHÐHÐHÐHÐHðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð „×ÒØÐØHð ñ ô ð5(ð 5(ð 5(ð 5(ð 5(Ð2ñ 5(ô 5(ñ	ô ð5(ðp „×ÒØÐØLð ñ ô ðoCð oCð oCð oCð oCÐ4ñ oCô oCñ	ô ðoCð oCð oCr   