
    h                     t    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y)	    N)
CDataCommentDeclarationDoctypeNavigableStringRubyParenthesisStringRubyTextStringScript
StylesheetTemplateString   )SoupTestc                       e Zd Zd Zd Zd Zy)TestNavigableStringc                    t        d      }t        d      }t        d      }d|j                         k(  sJ d|j                  k(  sJ d|j                  d      k(  sJ dgt        |j                        k(  sJ dgt        |j                        k(  sJ dgt        |j                               k(  sJ d|j                         k(  sJ d|j                  k(  sJ d|j                  d      k(  sJ dgt        |j                        k(  sJ dgt        |j                        k(  sJ dgt        |j                               k(  sJ d|j                         k(  sJ g t        |j                        k(  sJ g t        |j                        k(  sJ g t        |j                               k(  sJ d	|j                  dt        
      k(  sJ d|j                  t        t         f      k(  sJ y )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/labsstorage/home/kalaiyarasan.offl.2004/htdocs/course/socket/myenv/lib/python3.12/site-packages/bs4/tests/test_navigablestring.pytest_text_acquisition_methodsz1TestNavigableString.test_text_acquisition_methods   s    F#f&/%%%!!!


....x4		?***w$q112222x4 01111))))%%%T2222x4....w$u556666x4 2 2 45555 W%%''''T'//****T'223333T'..01111 ((t7(CCCC))/0J)KKKK    c                     | j                  d      j                  }d |j                  u sJ t        j                  t
              5  d|_        d d d        y # 1 sw Y   y xY w)Nr"   foo)soupr   namepytestraisesAttributeError)r!   r   s     r%   'test_string_has_immutable_name_propertyz;TestNavigableString.test_string_has_immutable_name_property5   sO    3&&v{{"""]]>* 	 FK	  	  	 s   AAc                     | j                  d      j                  }t        j                  t              5 }|d    d d d        t        j                        dk(  sJ |d   dk(  sJ |dd dk(  sJ y # 1 sw Y   8xY w)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% 	6N	177|{{{{ ayCa{e###	 	s   A22A;N)__name__
__module____qualname__r&   r/   r8    r'   r%   r   r      s    LB 
$r'   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestNavigableStringSubclassesc                     | j                  d      }t        d      }|j                  d|       t        |      dk(  sJ |j	                  d      dk(  sJ |j
                  d   dk(  sJ y )Nr   r)   r   z<![CDATA[foo]]>r   r   )r*   r   insertr6   findcontents)r!   r*   r#   s      r%   
test_cdataz(TestNavigableStringSubclasses.test_cdataI   sk     yy}eAu4y----yyy&%///}}Q5(((r'   c                      d _          fd} j                  d      }t        d      }|j                  d|       d|j	                  |      k(  sJ d j                   k(  sJ y)	zkText inside a CData object is passed into the formatter.

        But the return value is ignored.
        r   c                  0    xj                   dz  c_         y)Nr   zBITTER FAILURE)count)argsr!   s    r%   	incrementzNTestNavigableStringSubclasses.test_cdata_is_never_formatted.<locals>.increment[   s    JJ!OJ#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DJJr'   c                     t        d      }| j                  d      }|j                  d|       |j                         dk(  sJ y )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   s=     %.yy}Aw{{} 3333r'   c                 D    t        d      }d|j                         k(  sJ y )Nr)   z<?foo?>)r   output_ready)r!   ds     r%   test_declarationz.TestNavigableStringSubclasses.test_declarationm   s!    ANN,,,,r'   c                    | j                  d      }t        t        t        g|j	                  d      D cg c]  }|j
                   c}k(  sJ | j                  d      }t        d |j                  j                  d       D              sJ |j                  j                  }t        |t              sJ t        |t              rJ d}| j                  |      }||j                  j                  d      k(  sJ y c c}w )	Nz7<div>text</div><script>text</script><style>text</style>Tr@   z><template>Some text<p>In a tag</p></template>Some text outsidec              3   <   K   | ]  }t        |t                y w)N)
isinstancer   ).0xs     r%   	<genexpr>zOTestNavigableStringSubclasses.test_default_string_containers.<locals>.<genexpr>   s      
 q.)
s   r   sB   <template>Some text<p>In a tag</p><!--with a comment--></template>utf8)r*   r   r
   r   find_all	__class__alltemplater    next_siblingrV   r   rK   )r!   r*   rX   outsidemarkups        r%   test_default_string_containersz<TestNavigableStringSubclasses.test_default_string_containersq   s     yyRS4!%d!;9
AKK9
 
 	
 
 yyL
  
]]//d/;
 
 	
 
 --,,'?333g~666
 Wyy --f555559
s   C=c                 >   d}| j                  |      }t        |j                  j                  t              sJ t        |j
                  j                  t              sJ d|j                  d      k(  sJ d|j                  dt        t        t        f      k(  sJ y )NuU   <ruby>漢 <rp>(</rp><rt>kan</rt><rp>)</rp> 字 <rp>(</rp><rt>ji</rt><rp>)</rp></ruby>u   漢字Tr   u   漢(kan)字(ji)r   )	r*   rV   rpr   r   rtr	   r   r   )r!   ra   r*   s      r%   test_ruby_stringsz/TestNavigableStringSubclasses.test_ruby_strings   s    hyy $''..*?@@@$''...999 4==t=4444 DMM@UV %2 %
 
 	
 
r'   N)	r9   r:   r;   rD   rL   rO   rS   rb   rf   r<   r'   r%   r>   r>   H   s!    )$4-6@

r'   r>   )r,   bs4.elementr   r   r   r   r   r   r	   r
   r   r   r   r   r   r>   r<   r'   r%   <module>rh      s7       3$( 3$jS
H S
r'   