
    Mh                         d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ  G d de          Z G d de          ZdS )	    N)
CDataCommentDeclarationDoctypeNavigableStringRubyParenthesisStringRubyTextStringScript
StylesheetTemplateString   )SoupTestc                        e Zd Zd Zd Zd ZdS )TestNavigableStringc                 b   t          d          }t          d          }t          d          }d|                                k    sJ d|j        k    sJ d|                    d          k    sJ dgt          |j                  k    sJ dgt          |j                  k    sJ dgt          |                                          k    sJ d|                                k    sJ d|j        k    sJ d|                    d          k    sJ dgt          |j                  k    sJ dgt          |j                  k    sJ dgt          |                                          k    sJ d|                                k    sJ g t          |j                  k    sJ g t          |j                  k    sJ g t          |                                          k    sJ d	|                    dt          
          k    sJ d|                    t          t           f          k    sJ d S )Nzfee zfie zfoe feeTstripfie foer   typesr   )	r   r   r   get_textstringliststringsstripped_strings_all_strings)selfscdatacomments       ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/bs4/tests/test_navigablestring.pytest_text_acquisition_methodsz1TestNavigableString.test_text_acquisition_methods   sM    F##f&//%%%%!!!!


......x4	??****w$q1222222x4 0 0111111))))))%%%%T222222x4......w$u5666666x4 2 2 4 4555555 W%%''''''T'/******T'2333333T'..00111111 ((t7(CCCCCC))/0J)KKKKKKKK    c                     |                      d          j        }d |j        u sJ t          j        t
                    5  d|_        d d d            d S # 1 swxY w Y   d S )Nr"   foo)soupr   namepytestraisesAttributeError)r!   r   s     r%   'test_string_has_immutable_name_propertyz;TestNavigableString.test_string_has_immutable_name_property5   s    3&v{""""]>** 	  	 FK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                    |                      d          j        }t          j        t                    5 }|d          d d d            n# 1 swxY w Y   t          |j                  dk    sJ |d         dk    sJ |dd         dk    sJ d S )Nz
the stringattrzZstring indices must be integers, not 'str'. Are you treating a NavigableString like a Tag?   e   ze s)r*   r   r,   r-   	TypeErrorstrvalue)r!   r   r3   s      r%   ,test_string_detects_attribute_access_attemptz@TestNavigableString.test_string_detects_attribute_access_attempt<   s    <((/ ]9%% 	6NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	17||{{{{{ ayCac{e######s   	A		AAN)__name__
__module____qualname__r&   r/   r8    r'   r%   r   r      sE        L L LB     
$ 
$ 
$ 
$ 
$r'   r   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestNavigableStringSubclassesc                    |                      d          }t          d          }|                    d|           t          |          dk    sJ |                    d          dk    sJ |j        d         dk    sJ d S )Nr   r)   r   z<![CDATA[foo]]>r   r   )r*   r   insertr6   findcontents)r!   r*   r#   s      r%   
test_cdataz(TestNavigableStringSubclasses.test_cdataI   s     yy}}eAu4yy-----yyy&&%////}Q5((((((r'   c                      d _          fd}                     d          }t          d          }|                    d|           d|                    |          k    sJ d j         k    sJ dS )	zkText inside a CData object is passed into the formatter.

        But the return value is ignored.
        r   c                  (    xj         dz  c_         dS )Nr   zBITTER FAILURE)count)argsr!   s    r%   	incrementzNTestNavigableStringSubclasses.test_cdata_is_never_formatted.<locals>.increment[   s    JJ!OJJ##r'   r   z<><><>r   s   <![CDATA[<><><>]]>)	formatterN)rG   r*   r   rA   encode)r!   rI   r*   r#   s   `   r%   test_cdata_is_never_formattedz;TestNavigableStringSubclasses.test_cdata_is_never_formattedS   s     
	$ 	$ 	$ 	$ 	$ yy}}hAu$i(H(HHHHHDJr'   c                     t          d          }|                     d          }|                    d|           |                                dk    sJ d S )Nr)   r   r   s   <!DOCTYPE foo>
)r   r*   rA   rK   )r!   doctyper*   s      r%   test_doctype_ends_in_newlinez:TestNavigableStringSubclasses.test_doctype_ends_in_newlinee   sR     %..yy}}Aw{{}} 3333333r'   c                 X    t          d          }d|                                k    sJ d S )Nr)   z<?foo?>)r   output_ready)r!   ds     r%   test_declarationz.TestNavigableStringSubclasses.test_declarationm   s0    ANN,,,,,,,,r'   c                    |                      d          }t          t          t          gd |                    d          D             k    sJ |                      d          }t          d |j                            d           D                       sJ |j        j        }t          |t                    sJ t          |t                    rJ d}|                      |          }||j                            d	          k    sJ d S )
Nz7<div>text</div><script>text</script><style>text</style>c                     g | ]	}|j         
S r<   )	__class__.0xs     r%   
<listcomp>zPTestNavigableStringSubclasses.test_default_string_containers.<locals>.<listcomp>u   s'     9
 9
 9
AK9
 9
 9
r'   Tr@   z><template>Some text<p>In a tag</p></template>Some text outsidec              3   @   K   | ]}t          |t                    V  d S )N)
isinstancer   rW   s     r%   	<genexpr>zOTestNavigableStringSubclasses.test_default_string_containers.<locals>.<genexpr>   s@       
 
 q.))
 
 
 
 
 
r'   r   sB   <template>Some text<p>In a tag</p><!--with a comment--></template>utf8)r*   r   r
   r   find_allalltemplater    next_siblingr\   r   rK   )r!   r*   outsidemarkups       r%   test_default_string_containersz<TestNavigableStringSubclasses.test_default_string_containersq   s;    yyRSS4 9
 9
!%d!;!;9
 9
 9
 
 
 
 
 yyL
 
  
 
]//d/;;
 
 
 
 
 	
 	
 	
 -,'?33333g~66666
 Wyy  --f55555555r'   c                 N   d}|                      |          }t          |j        j        t                    sJ t          |j        j        t                    sJ d|                    d          k    sJ d|                    dt          t          t          f          k    sJ d S )NuU   <ruby>漢 <rp>(</rp><rt>kan</rt><rp>)</rp> 字 <rp>(</rp><rt>ji</rt><rp>)</rp></ruby>u   漢字Tr   u   漢(kan)字(ji)r   )	r*   r\   rpr   r   rtr	   r   r   )r!   rd   r*   s      r%   test_ruby_stringsz/TestNavigableStringSubclasses.test_ruby_strings   s    hyy  $'.*?@@@@@$'..99999 4==t=444444 DMM@UV %2 %
 %
 
 
 
 
 
 
r'   N)	r9   r:   r;   rD   rL   rO   rS   re   ri   r<   r'   r%   r>   r>   H   so        ) ) )  $4 4 4- - -6 6 6@

 

 

 

 

r'   r>   )r,   bs4.elementr   r   r   r   r   r   r	   r
   r   r   r   r   r   r>   r<   r'   r%   <module>rk      s                                3$ 3$ 3$ 3$ 3$( 3$ 3$ 3$jS
 S
 S
 S
 S
H S
 S
 S
 S
 S
r'   