a
    #.c                      @   sH   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 deZ	dS )    N)Tag)	FormatterHTMLFormatterXMLFormatter   )SoupTestc                   @   s\   e Zd Zdd Zdd Zdd Zejddd	d
ddddde	 dfdg
dd Z
dd ZdS )TestFormatterc                 C   s`   t  }tdd}d|d< d|d< ddg||ks6J d |_g ||ksNJ d	|jks\J d S )
Ntag)namer   b   a)r   r   )r   r    )r   r   
attributesattrsindent)self	formatterr	    r   R/var/www/brookimports/venv/lib/python3.9/site-packages/bs4/tests/test_formatter.pytest_default_attributes   s    
z%TestFormatter.test_default_attributesc                 C   sL   G dd dt }| d}| }|j|d}|j|jks<J d|ksHJ d S )Nc                   @   s   e Zd Zdd ZdS )z=TestFormatter.test_sort_attributes.<locals>.UnsortedFormatterc                 s   s6   || _ t|j D ]\}}|dkr&q||fV  qd S )Nignore)called_withsortedr   items)r   r	   kvr   r   r   r   $   s
    zHTestFormatter.test_sort_attributes.<locals>.UnsortedFormatter.attributesN)__name__
__module____qualname__r   r   r   r   r   UnsortedFormatter#   s   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   decodedr   r   r   test_sort_attributes    s    
z"TestFormatter.test_sort_attributesc                 C   s   dD ]}t j| }d|jksJ qtjd  }d|jks:J t jd }d|jksRJ tdd}d|jksjJ dD ]D}| |}dD ]0}d|jjd	d
ksJ d|jjdd
ksJ qqnd S )N)htmlminimalNFhtml5T)empty_attributes_are_booleans)z<option selected></option>z<option selected=""></option>)r'   r(   xmlNs   <option selected=""></option>r'   r!   s   <option selected></option>)r   ZREGISTRYr*   r   r   r"   optionencode)r   r
   r   markupr"   r   r   r   "test_empty_attributes_are_booleans4   s    




z0TestFormatter.test_empty_attributes_are_booleanszindent,expect)N<a>
<b>
text
</b>
</a>)r0   )r   r0   ) r0   )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>r3   )s   bytesr3   c                 C   s@   |  d}t|d}|j|d|ks(J |j|d|ks<J d S )Nz<a><b>text</b></a>)r   r!   )r"   r   Zprettifyr-   )r   r   expectr"   r   r   r   r   test_indentP   s    

zTestFormatter.test_indentc                 C   s   t  }|jdksJ d S )Nr   )r   r   )r   r   r   r   r   test_default_indent_valuen   s    z'TestFormatter.test_default_indent_valueN)r   r   r   r   r&   r/   pytestmarkZparametrizeobjectr7   r8   r   r   r   r   r      s&   
r   )
r9   Zbs4.elementr   Zbs4.formatterr   r   r   r2   r   r   r   r   r   r   <module>   s   