
    Owg4                     N    d dl Z d dlmZ d dlmZmZmZ ddlmZ  G d de      Z	y)    N)Tag)	FormatterHTMLFormatterXMLFormatter   )SoupTestc                       e Zd Zd Zd Zd Zej                  j                  dddddd	d
dd e	       dfdg
      d        Z
d Zy)TestFormatterc                     t               }t        d      }d|d<   d|d<   ddg|j                  |      k(  sJ d |_        g |j                  |      k(  sJ d	|j                  k(  sJ y )
Ntag)namer   b   a)r   r   )r   r    )r   r   
attributesattrsindent)self	formatterr   s      O/var/www/horilla/myenv/lib/python3.12/site-packages/bs4/tests/test_formatter.pytest_default_attributesz%TestFormatter.test_default_attributes   sz    K	uoCC
 (#y';';C'@@@@ 	Y))#....i&&&&&    c                      G d dt               }| j                  d      } |       }|j                  |      }|j                  |j                  k(  sJ d|k(  sJ y )Nc                       e Zd Zd Zy)=TestFormatter.test_sort_attributes.<locals>.UnsortedFormatterc              3      K   || _         t        |j                  j                               D ]  \  }}|dk(  r||f  y w)Nignore)called_withsortedr   items)r   r   kvs       r   r   zHTestFormatter.test_sort_attributes.<locals>.UnsortedFormatter.attributes$   sD     #& "399??#45 DAqH} A#Is   A AN)__name__
__module____qualname__r    r   r   UnsortedFormatterr   #   s    r   r(   z*<p cval="1" aval="2" ignore="ignored"></p>r   z<p aval="2" cval="1"></p>)r   soupdecoder   p)r   r(   r*   r   decodeds        r   test_sort_attributesz"TestFormatter.test_sort_attributes    s_    		 	 yyEF%'	++	+2 $$...*g555r   c                    dD ]&  }t         j                  |   }d|j                  k(  r&J  t        j                  d    }d|j                  k(  sJ t         j                  d   }d|j                  k(  sJ t	        d      }d|j                  k(  sJ dD ]\  }| j                  |      }dD ]D  }d|j                  j                  d	
      k(  sJ d|j                  j                  d
      k(  rDJ  ^ y )N)htmlminimalNFhtml5T)empty_attributes_are_booleans)z<option selected></option>z<option selected=""></option>)r0   r1   xmlNs   <option selected=""></option>r0   r)   s   <option selected></option>)r   REGISTRYr3   r   r   r*   optionencode)r   r   r   markupr*   s        r   "test_empty_attributes_are_booleansz0TestFormatter.test_empty_attributes_are_booleans4   s    . 	DD%..t4IICCCCC	D !))$/		?????!**73	y>>>>> DA	y>>>>>
 	^F 99V$D= ^	74;;;M;MX^;M;____48J8JU\8J8]]]]^	^r   zindent,expect)N<a>
<b>
text
</b>
</a>
)r:   )r   r:   ) r:   )r   <a>
 <b>
  text
 </b>
</a>
)r   z<a>
  <b>
    text
  </b>
</a>
)	z<a>
	<b>
		text
	</b>
</a>
)abcz#<a>
abc<b>
abcabctext
abc</b>
</a>
r=   )s   bytesr=   c                     | j                  d      }t        |      }|j                  |      |k(  sJ |j                  |      |k7  sJ y )Nz<a><b>text</b></a>)r   r)   )r*   r   prettifyr7   )r   r   expectr*   r   s        r   test_indentzTestFormatter.test_indentP   sQ    , yy-.V,	}}y}1V;;; {{Y{/6999r   c                 :    t               }|j                  dk(  sJ y )Nr   )r   r   )r   r   s     r   test_default_indent_valuez'TestFormatter.test_default_indent_valuen   s    K	3&&&r   N)r$   r%   r&   r   r.   r9   pytestmarkparametrizeobjectrC   rE   r'   r   r   r
   r
      sj    '&6(^8 [[20/037:? X9::	
&	:'&	:'r   r
   )
rF   bs4.elementr   bs4.formatterr   r   r   r<   r   r
   r'   r   r   <module>rL      s(      
 e'H e'r   