
    ,h2	                     r    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ee      Z G d	 d
e      Zy)zGTests to ensure that the html.parser tree builder generates good
trees.    )	set_traceN)SoupTestHTMLTreeBuilderSmokeTest)HTMLParserTreeBuilder)BeautifulSoupHTMLParserc                   4    e Zd ZeZd Zd Zd Zd Zd Z	d Z
y)HTMLParserTreeBuilderSmokeTestc                      y N selfs    [/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/bs4/tests/test_htmlparser.pytest_namespaced_system_doctypez=HTMLParserTreeBuilderSmokeTest.test_namespaced_system_doctype           c                      y r   r   r   s    r   test_namespaced_public_doctypez=HTMLParserTreeBuilderSmokeTest.test_namespaced_public_doctype   r   r   c                     | j                  d      }t        j                  |d      }t        j                  |      }| j	                  t        |j                  t        |j                                     y)zfUnlike most tree builders, HTMLParserTreeBuilder and will
        be restored after pickling.
        z<a><b>foo</a>   N)souppickledumpsloads
assertTrue
isinstancebuildertype)r   treedumpedloadeds       r   test_builder_is_pickledz6HTMLParserTreeBuilderSmokeTest.test_builder_is_pickled   sP     yy)dA&f%
6>>43EFGr   c                 L    | j                  dd       | j                  dd       y )Nz<br></br><br></br><br></br>z<br/><br/><br/>z</br></br></br> assertSoupEqualsr   s    r   )test_redundant_empty_element_closing_tagszHHTMLParserTreeBuilderSmokeTest.test_redundant_empty_element_closing_tags   s%    ;=NO/4r   c                 (    | j                  dd       y )Nz
foo &# barzfoo &amp;# barr%   r   s    r   test_empty_elementz1HTMLParserTreeBuilderSmokeTest.test_empty_element#   s     	l,<=r   c                    d}| j                  |      }| j                  d|j                  j                         | j                  d|j                  j                         | j                  d|j                  j                  d      j                         | j                  |d      }| j                  d|j                  j                  j                         | j                  d|j                  j                  j                         y )Nz=
   <p>

<sourceline>
<b>text</b></sourceline><sourcepos></p>r      
sourcelineF)store_line_numbers	sourcepos)r   assertEqualpr,   r.   findname)r   markupr   s      r   test_tracking_line_numbersz9HTMLParserTreeBuilderSmokeTest.test_tracking_line_numbers(   s     Uyy DFF--.DFF,,-tvv{{<'@'E'EF yyEy:tvv'8'8'='=>dff&6&6&;&;<r   N)__name__
__module____qualname__r   default_builderr   r   r"   r'   r)   r4   r   r   r   r	   r	   
   s&    +OH5>
=r   r	   c                       e Zd Zd Zy)TestHTMLParserSubclassc                 :    t               }|j                  d       y)zlVerify that our HTMLParser subclass implements error() in a way
        that doesn't cause a crash.
        zdon't crashN)r   error)r   parsers     r   
test_errorz!TestHTMLParserSubclass.test_error8   s     )*]#r   N)r5   r6   r7   r>   r   r   r   r:   r:   7   s    $r   r:   )__doc__pdbr   r   bs4.testingr   r   bs4.builderr   bs4.builder._htmlparserr   r	   r:   r   r   r   <module>rD      s7   
   : - ;*=X/G *=Z$X $r   