B
    j9C\À  ã               @   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dd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚHTMLParserTreeBuilderSmokeTestc             C   s   t ƒ S )N)r   )Úself© r	   ú8lib/python3.7/site-packages/bs4/tests/test_htmlparser.pyÚdefault_builder   s    z.HTMLParserTreeBuilderSmokeTest.default_builderc             C   s   d S )Nr	   )r   r	   r	   r
   Útest_namespaced_system_doctype   s    z=HTMLParserTreeBuilderSmokeTest.test_namespaced_system_doctypec             C   s   d S )Nr	   )r   r	   r	   r
   Útest_namespaced_public_doctype   s    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)ZsoupÚpickleÚdumpsÚloadsZ
assertTrueÚ
isinstanceZbuilderÚtype)r   Z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>Ú )ÚassertSoupEquals)r   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;# bar)r   )r   r	   r	   r
   Útest_empty_element%   s    z1HTMLParserTreeBuilderSmokeTest.test_empty_elementN)
Ú__name__Ú
__module__Ú__qualname__Úpropertyr   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_error,   s    z!TestHTMLParserSubclass.test_errorN)r   r   r   r    r	   r	   r	   r
   r   +   s   r   )Ú__doc__Zpdbr   r   Zbs4.testingr   r   Zbs4.builderr   Zbs4.builder._htmlparserr   r   r   r	   r	   r	   r
   Ú<module>   s   !