File: D:/Python311/Lib/site-packages/bs4/tests/__pycache__/test_lxml.cpython-311.pyc
�
��nc� � �N � d Z ddlZddlZddlZ ddlZdZej j Zn# e $ rZ
dZdZY dZ
[
ndZ
[
ww xY werddlmZm
Z
ddlmZmZ ddlmZmZmZ d d
lmZmZmZmZ ee d� � G d� d
ee� � � � Z ee d� � G d� dee� � � � ZdS )z@Tests to ensure that the lxml tree builder generates good trees.� NTF)r )�LXMLTreeBuilder�LXMLTreeBuilderForXML)�
BeautifulSoup�BeautifulStoneSoup)�Comment�Doctype�SoupStrainer� )�HTMLTreeBuilderSmokeTest�XMLTreeBuilderSmokeTest�SoupTest�skipIfz;lxml seems not to be present, not testing its tree builder.c �x � e Zd ZdZed� � � Zd� Zd� Z ee pe
dk d� � d� � � Zd� Zd � Z
d
S )�TestLXMLTreeBuilder�!See ``HTMLTreeBuilderSmokeTest``.c � � t S �N)r ��selfs �5D:\Python311\Lib\site-packages\bs4/tests/test_lxml.py�default_builderz#TestLXMLTreeBuilder.default_builder$ s � ��� c � � | � dd� � | � dd� � | � dd� � d S )Nz<p>foo�bar</p>z
<p>foobar</p>z<p>foo�bar</p>z<p>foo�bar</p>)�assert_soupr s r �test_out_of_range_entityz,TestLXMLTreeBuilder.test_out_of_range_entity( sf � ����,�o� ?� ?� ?����-�� @� @� @����(�/� ;� ;� ;� ;� ;r c � � d S r � r s r �*test_entities_in_foreign_document_encodingz>TestLXMLTreeBuilder.test_entities_in_foreign_document_encoding0 s � �
�r )� � � r z@Skipping doctype test for old version of lxml to avoid segfault.c �~ � | � d� � }|j d }d|� � � k sJ �d S )Nz
<!DOCTYPE>r � )�soup�contents�strip)r r$ �doctypes r �test_empty_doctypez&TestLXMLTreeBuilder.test_empty_doctype9 s@ � � �y�y��&�&���-��"���W�]�]�_�_�$�$�$�$�$�$r c �� � t j d�� � 5 }t d� � }d d d � � n# 1 swxY w Y dt |j � � k sJ �dt |d j � � v sJ �d S )NT)�recordz<b />z<b/>z&BeautifulStoneSoup class is deprecatedr )�warnings�catch_warningsr �str�b�message)r �wr$ s r �%test_beautifulstonesoup_is_xml_parserz9TestLXMLTreeBuilder.test_beautifulstonesoup_is_xml_parserA s� � � �
$�D�
1�
1�
1� /�Q�%�g�.�.�D� /� /� /� /� /� /� /� /� /� /� /���� /� /� /� /���T�V���$�$�$�$�7�3�q��t�|�;L�;L�L�L�L�L�L�Ls �2�6�6c � � | � dd�� � }d|j j j k sJ �d|j j j k sJ �d S )Nz=
<p>
<sourceline>
<b>text</b></sourceline><sourcepos></p>T)�store_line_numbers�
sourceline� sourcepos)r$ �pr4 �namer5 �r r$ s r �test_tracking_line_numbersz.TestLXMLTreeBuilder.test_tracking_line_numbersI s\ � � �y�y�O�#� �
�
�� �t�v�0�5�5�5�5�5��d�f�.�3�3�3�3�3�3�3r N)�__name__�
__module__�__qualname__�__doc__�propertyr r r r �LXML_PRESENT�LXML_VERSIONr( r1 r9 r r r r r s� � � � � � � ,�+�
�� � �X��;� ;� ;�
�
�
� �V���4�L�9�4�J�L� L�%� %�L� L�%�
M� M� M�
4�
4�
4�
4�
4r r z?lxml seems not to be present, not testing its XML tree builder.c �: � e Zd ZdZed� � � Zd� Zd� Zd� ZdS )�TestLXMLXMLTreeBuilderr c � � t S r )r r s r r z&TestLXMLXMLTreeBuilder.default_builder^ s � �$�$r c � � | � d� � }|j dddd�k sJ �|j j ddik sJ �|j j ddd�k sJ �|j j ddd�k sJ �|j j ddd�k sJ �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/namespacezhttp://prefixed-namespace.comzhttp://another-namespace.com)�xml�prefix�prefix2rE )rF rE )rG rE )r$ �_namespaces�tag�tag2�subtag� subsubtagr8 s r �test_namespace_indexingz.TestLXMLXMLTreeBuilder.test_namespace_indexingb s � ��y�y�
�
�
��&