
    Mf4                     V    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	dS )    N)Tag)	FormatterHTMLFormatterXMLFormatter   )SoupTestc                       e Zd Zd Zd Zd Zej                            dddddd	d
dd e	            dfdg
          d             Z
d ZdS )TestFormatterc                     t                      }t          d          }d|d<   d|d<   ddg|                    |          k    sJ d |_        g |                    |          k    sJ d	|j        k    sJ d S )
Ntag)namer   b   a)r   r   )r   r    )r   r   
attributesattrsindent)self	formatterr   s      W/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/bs4/tests/test_formatter.pytest_default_attributesz%TestFormatter.test_default_attributes   s    KK	uoooCC
 (#y';';C'@'@@@@@ 	Y))#......i&&&&&&&    c                      G d dt                     }|                     d          } |            }|                    |          }|j        |j        k    sJ d|k    sJ d S )Nc                       e Zd Zd ZdS )=TestFormatter.test_sort_attributes.<locals>.UnsortedFormatterc              3      K   || _         t          |j                                                  D ]\  }}|dk    r||fV  d S )Nignore)called_withsortedr   items)r   r   kvs       r   r   zHTestFormatter.test_sort_attributes.<locals>.UnsortedFormatter.attributes$   sZ      #& "39??#4#455  DAqH}} A#IIII r   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F%%''	++	+22 $....*g555555r   c                    dD ]!}t           j        |         }d|j        k    s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 ]^}|                     |          }dD ]D}d|j                            d	
          k    sJ d|j                            d
          k    sJ E_d S )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   s7    . 	D 	DD%.t4IICCCCCC )$/		?????!*73	y>>>>> DAAA	y>>>>>
 	^ 	^F 99V$$D= ^ ^	74;;M;MX^;M;_;_____48J8JU\8J8]8]]]]]]^	^ 	^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                     |                      d          }t          |          }|                    |          |k    sJ |                    |          |k    sJ d S )Nz<a><b>text</b></a>)r   r)   )r*   r   prettifyr7   )r   r   expectr*   r   s        r   test_indentzTestFormatter.test_indentP   sl    , yy-..V,,,	}}y}11V;;;; {{Y{//6999999r   c                 <    t                      }|j        dk    sJ d S )Nr   )r   r   )r   r   s     r   test_default_indent_valuez'TestFormatter.test_default_indent_valuen   s%    KK	3&&&&&&r   N)r$   r%   r&   r   r.   r9   pytestmarkparametrizeobjectrC   rE   r'   r   r   r
   r
      s        ' ' '&6 6 6(^ ^ ^8 [20/037:? VXX9::	
 &	: 	:' &	:' ' ' ' 'r   r
   )
rF   bs4.elementr   bs4.formatterr   r   r   r<   r   r
   r'   r   r   <module>rL      s                   
      e' e' e' e' e'H e' e' e' e' e'r   