o
    e2	                     @   sf   d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
 G dd deeZG d	d
 d
eZdS )zGTests to ensure that the html.parser tree builder generates good
trees.    )	set_traceN)SoupTestHTMLTreeBuilderSmokeTest)HTMLParserTreeBuilder)BeautifulSoupHTMLParserc                   @   s@   e Zd ZeZdd Zdd Zdd Zdd Zd	d
 Z	dd Z
dS )HTMLParserTreeBuilderSmokeTestc                 C      d S N selfr
   r
   ID:\Projects\ConvertPro\env\Lib\site-packages\bs4/tests/test_htmlparser.pytest_namespaced_system_doctype      z=HTMLParserTreeBuilderSmokeTest.test_namespaced_system_doctypec                 C   r   r	   r
   r   r
   r
   r   test_namespaced_public_doctype   r   z=HTMLParserTreeBuilderSmokeTest.test_namespaced_public_doctypec                 C   s<   |  d}t|d}t|}| t|jt|j dS )zfUnlike most tree builders, HTMLParserTreeBuilder and will
        be restored after pickling.
        z<a><b>foo</a>   N)souppickledumpsloads
assertTrue
isinstanceZbuildertype)r   treeZdumpedZloadedr
   r
   r   test_builder_is_pickled   s   

z6HTMLParserTreeBuilderSmokeTest.test_builder_is_pickledc                 C   s   |  dd |  dd d S )Nz<br></br><br></br><br></br>z<br/><br/><br/>z</br></br></br> ZassertSoupEqualsr   r
   r
   r   )test_redundant_empty_element_closing_tags   s   zHHTMLParserTreeBuilderSmokeTest.test_redundant_empty_element_closing_tagsc                 C   s   |  dd d S )Nz
foo &# barzfoo &amp;# barr   r   r
   r
   r   test_empty_element#   s   z1HTMLParserTreeBuilderSmokeTest.test_empty_elementc                 C   sz   d}|  |}| d|jj | d|jj | d|jdj | j |dd}| d|jjj | d|jjj d S )Nz=
   <p>

<sourceline>
<b>text</b></sourceline><sourcepos></p>r      
sourcelineF)Zstore_line_numbers	sourcepos)r   assertEqualpr    r!   findname)r   markupr   r
   r
   r   test_tracking_line_numbers(   s   
z9HTMLParserTreeBuilderSmokeTest.test_tracking_line_numbersN)__name__
__module____qualname__r   Zdefault_builderr   r   r   r   r   r'   r
   r
   r
   r   r   
   s    	r   c                   @   s   e Zd Zdd ZdS )TestHTMLParserSubclassc                 C   s   t  }|d dS )zlVerify that our HTMLParser subclass implements error() in a way
        that doesn't cause a crash.
        zdon't crashN)r   error)r   parserr
   r
   r   
test_error8   s   z!TestHTMLParserSubclass.test_errorN)r(   r)   r*   r.   r
   r
   r
   r   r+   7   s    r+   )__doc__pdbr   r   Zbs4.testingr   r   Zbs4.builderr   Zbs4.builder._htmlparserr   r   r+   r
   r
   r
   r   <module>   s    -