403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.216.91
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/bs4/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/bs4/tests/__pycache__/test_pageelement.cpython-311.pyc
�

H�cim���dZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZerddlm
Z
Gd�d	e
��ZGd
�de
��Zej�ed�
��Gd�de
����ZGd�de
��ZdS)z*Tests of the bs4.element.PageElement class�N)�
BeautifulSoup)�Comment�SoupStrainer�)�SoupTest�SOUP_SIEVE_PRESENT)�SelectorSyntaxErrorc�B�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestEncodingz0Test the ability to encode objects into strings.c��d}|�|��}|jj�d��d�d��ksJ�dS)N�
<b>☃</b>�utf-8�☃)�soup�b�string�encode��self�htmlrs   �</usr/lib/python3/dist-packages/bs4/tests/test_pageelement.py�"test_unicode_string_can_be_encodedz/TestEncoding.test_unicode_string_can_be_encodedsM��#���y�y������v�}�#�#�G�,�,�
�0D�0D�W�0M�0M�M�M�M�M�M�M�c��d}|�|��}|j�d��|�d��ksJ�dS)Nr
r�rrrrs   r�1test_tag_containing_unicode_string_can_be_encodedz>TestEncoding.test_tag_containing_unicode_string_can_be_encodedsG��#���y�y������v�}�}�W�%�%����W�)=�)=�=�=�=�=�=�=rc�t�d}|�|��}|j�d��dksJ�dS)Nr
�asciis<b>&#9731;</b>rrs   r�<test_encoding_substitutes_unrecognized_characters_by_defaultzITestEncoding.test_encoding_substitutes_unrecognized_characters_by_default s<��#���y�y������v�}�}�W�%�%�):�:�:�:�:�:�:rc���d}|�|��}tjt��5|�dd���ddd��dS#1swxYwYdS)Nr
r�strict)�errors)r�pytest�raises�UnicodeEncodeErrorrrs   r� test_encoding_can_be_made_strictz-TestEncoding.test_encoding_can_be_made_strict%s���#���y�y�����
�]�-�
.�
.�	2�	2��K�K���K�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�A�A�Ac�r�d}|�|��}d|j���ksJ�dS)Nr
r)rr�decode_contentsrs   r�test_decode_contentsz!TestEncoding.test_decode_contents+s;��#���y�y�������� 6� 6� 8� 8�8�8�8�8�8�8rc��d}|�|��}d�d��|j�d���ksJ�dS)Nr
r�utf8)�encoding)rrr�encode_contentsrs   r�test_encode_contentsz!TestEncoding.test_encode_contents0sb��#���y�y������#�#�F�+�+�t�v�/E�/E��0F�0
�0
�
�
�
�
�
�
rc��d}|�|��}d�d��|j���ksJ�dS)Nr
rr+)rrr�renderContentsrs   r�test_deprecated_renderContentsz+TestEncoding.test_deprecated_renderContents7sI��#���y�y������#�#�F�+�+�t�v�/D�/D�/F�/F�F�F�F�F�F�Frc�^�d}|�|��}|t|��ksJ�dS�Nr
)r�reprrs   r�	test_reprzTestEncoding.test_repr<s3��#���y�y������t�D�z�z�!�!�!�!�!�!rN)�__name__�
__module__�__qualname__�__doc__rrrr&r)r.r1r5�rrrrs�������:�:�N�N�N�
>�>�>�
;�;�;�
2�2�2�9�9�9�

�
�
�G�G�G�
"�"�"�"�"rrc�r�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�ZdS)�TestFormatterszrTest the formatting feature, used by methods like decode() and
    prettify(), and the formatters themselves.
    c��d}|�|��}|�d���}||�d��ksJ�dS�N�#<b>&lt;&lt;Sacré bleu!&gt;&gt;</b>�minimal��	formatter�r�decode�document_for�r�markupr�decodeds    r�!test_default_formatter_is_minimalz0TestFormatters.test_default_formatter_is_minimalG�a��W���y�y�� � ���+�+�	�+�2�2���$�+�+�V�
�
�
�
�
�
�
�
rc��d}|�|��}|�d���}||�d��ksJ�dS)N�'<br><b>&lt;&lt;Sacré bleu!&gt;&gt;</b>rrAz.<br/><b>&lt;&lt;Sacr&eacute; bleu!&gt;&gt;</b>rCrFs    r�test_formatter_htmlz"TestFormatters.test_formatter_htmlPsa��[���y�y�� � ���+�+��+�/�/���$�+�+�<�
�
�
�
�
�
�
�
rc��d}|�|��}|�d���}||�d��ksJ�dS)NrL�html5rAz-<br><b>&lt;&lt;Sacr&eacute; bleu!&gt;&gt;</b>rCrFs    r�test_formatter_html5z#TestFormatters.test_formatter_html5Xsa��[���y�y�� � ���+�+��+�0�0���$�+�+�;�
�
�
�
�
�
�
�
rc��d}|�|��}|�d���}||�d��ksJ�dSr>rCrFs    r�test_formatter_minimalz%TestFormatters.test_formatter_minimal`rJrc��d}|�|��}|�d���}||�d��ksJ�dS)Nr?rAu<b><<Sacré bleu!>></b>rCrFs    r�test_formatter_nullz"TestFormatters.test_formatter_nullisc��W���y�y�� � ���+�+��+�-�-���$�+�+�F�
�
�
�
�
�
�
�
rc��d}|�|��}|�d����}||�d��ksJ�dS)Nz!<b>&lt;foo&gt;</b><b>bar</b><br/>c�*�|���S�N��upper��xs r�<lambda>z6TestFormatters.test_formatter_custom.<locals>.<lambda>vs��A�G�G�I�I�rrAz<b><FOO></b><b>BAR</b><br/>rCrFs    r�test_formatter_customz$TestFormatters.test_formatter_customssW��4���y�y�� � ���+�+�*=�*=�+�>�>���$�+�+�,I�J�J�J�J�J�J�J�Jrc�d�d}|�|��}|j}d}||���ksJ�||�d���ksJ�d}||�d���ksJ�||�d���ksJ�d}||�d����ksJ�dS)	Nu%<a href="http://a.com?a=b&c=é">e</a>u)<a href="http://a.com?a=b&amp;c=é">e</a>r@rAz/<a href="http://a.com?a=b&amp;c=&eacute;">e</a>ru%<a href="HTTP://A.COM?A=B&C=É">E</a>c�*�|���SrWrXrZs rr\zJTestFormatters.test_formatter_is_run_on_attribute_values.<locals>.<lambda>�s��A�G�G�I�I�r)r�arD)rrGrr`�expect_minimal�expect_html�expect_uppers       r�)test_formatter_is_run_on_attribute_valuesz8TestFormatters.test_formatter_is_run_on_attribute_values{s���8���y�y�� � ���F��D��������+�+�+�+�����I��!>�!>�>�>�>�>�G���a�h�h��h�8�8�8�8�8�8�����D��1�1�1�1�1�1�>���q�x�x�2E�2E�x�F�F�F�F�F�F�F�Frc�Z�d}t|d�����}d|vsJ�dS)NzO
  <script type="text/javascript">
   console.log("< < hey > > ");
  </script>
�html.parser�< < hey > >�rr�r�doc�encodeds   r�2test_formatter_skips_script_tag_for_html_documentszATestFormatters.test_formatter_skips_script_tag_for_html_documents��=����
 ��]�3�3�:�:�<�<����(�(�(�(�(�(rc�Z�d}t|d�����}d|vsJ�dS)NzF
  <style type="text/css">
   console.log("< < hey > > ");
  </style>
rfrgrhris   r�1test_formatter_skips_style_tag_for_html_documentsz@TestFormatters.test_formatter_skips_style_tag_for_html_documents�rmrc�n�|�d��}d|j���ksJ�dS)NzN<div>  foo  <pre>  	bar
  
  </pre>  baz  <textarea> eee
fff	</textarea></div>zO<div>
 foo
 <pre>  	bar
  
  </pre>
 baz
 <textarea> eee
fff	</textarea>
</div>)r�div�prettify�rrs  r�,test_prettify_leaves_preformatted_text_alonez;TestFormatters.test_prettify_leaves_preformatted_text_alone�sX���y�y�n�o�o��k�nr�nv�n�n�oB�oB�B�B�B�B�B�Brc�`�tdd��}|�d����}d|vsJ�dS)Nz<html><body>foo</body></html>rfc�*�|���SrWrXrZs rr\zITestFormatters.test_prettify_accepts_formatter_function.<locals>.<lambda>�s��Q�W�W�Y�Y�rrA�FOO)rrr)rr�prettys   r�(test_prettify_accepts_formatter_functionz7TestFormatters.test_prettify_accepts_formatter_function�s:���<�m�L�L�����+>�+>��?�?���������rc��|�d��}tt|�����ksJ�dS)N�<a></a>)r�str�typerrrss  r�(test_prettify_outputs_unicode_by_defaultz7TestFormatters.test_prettify_outputs_unicode_by_default�s:���y�y��#�#���d�4�=�=�?�?�+�+�+�+�+�+�+�+rc��|�d��}tt|�d����ksJ�dS)Nr{r)r�bytesr}rrrss  r�test_prettify_can_encode_dataz,TestFormatters.test_prettify_can_encode_data�s>���y�y��#�#����T�]�]�7�3�3�4�4�4�4�4�4�4�4rc��d}|�|��}|j�d��}||�d��ksJ�dS)Nu<b>Sacré bleu!</b>rr)rrGrrks    r�,test_html_entity_substitution_off_by_defaultz;TestFormatters.test_html_entity_substitution_off_by_default�sN��G���y�y�� � ���&�-�-��(�(���&�-�-��0�0�0�0�0�0�0�0rc�X�d}|�|��}|jddksJ�|�d��}d|vsJ�|�d��}d|vsJ�|�d��}d	|vsJ�|�d
���d
��}d|vsJ�dS)NzE<meta content="text/html; charset=x-sjis" http-equiv="Content-type"/>�contentztext/html; charset=x-sjisrs
charset=utf-8�euc_jpscharset=euc_jpz	shift-jisscharset=shift-jiszutf-16zcharset=utf-16)r�metarrD)r�meta_tagr�utf_8r��	shift_jis�utf_16_us       r�test_encoding_substitutionz)TestFormatters.test_encoding_substitution�s���2���y�y��"�"���y��#�'B�B�B�B�B����G�$�$���5�(�(�(�(����X�&�&�� �F�*�*�*�*��K�K��,�,�	�#�y�0�0�0�0��;�;�x�(�(�/�/��9�9���8�+�+�+�+�+�+rc��d}td��}|�||���}|jdjdksJ�dS)Nz`<head><meta content="text/html; charset=x-sjis" http-equiv="Content-type"/></head><pre>foo</pre>�pre)�
parse_onlyr)rr�contents�name)rrG�strainerrs    r�;test_encoding_substitution_doesnt_happen_if_tag_is_strainedzJTestFormatters.test_encoding_substitution_doesnt_happen_if_tag_is_strained�sO��G�� ��&�&���y�y��H�y�5�5���}�Q��$��-�-�-�-�-�-rN)r6r7r8r9rIrMrPrRrTr]rdrlrortryr~r�r�r�r�r:rrr<r<Bs��������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�K�K�K�G�G�G�")�)�)�)�)�)�B�B�B����
,�,�,�5�5�5�1�1�1�,�,�,�0	.�	.�	.�	.�	.rr<zSoup Sieve not installed)�reasonc�p�eZdZdZdZd�Zd�ZeZd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9�Z<d:�Z=d;�Z>d<S)=�TestCSSSelectorsz�Test basic CSS selector functionality.

    This functionality is implemented in soupsieve, which has a much
    more comprehensive test suite, so this is basically an extra check
    that soupsieve works as expected.
    a�
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>The title</title>
<link rel="stylesheet" href="blah.css" type="text/css" id="l1">
</head>
<body>
<custom-dashed-tag class="dashed" id="dash1">Hello there.</custom-dashed-tag>
<div id="main" class="fancy">
<div id="inner">
<h1 id="header1">An H1</h1>
<p>Some text</p>
<p class="onep" id="p1">Some more text</p>
<h2 id="header2">An H2</h2>
<p class="class1 class2 class3" id="pmulti">Another</p>
<a href="http://bob.example.org/" rel="friend met" id="bob">Bob</a>
<h2 id="header3">Another H2</h2>
<a id="me" href="http://simonwillison.net/" rel="me">me</a>
<span class="s1">
<a href="#" id="s1a1">span1a1</a>
<a href="#" id="s1a2">span1a2 <span id="s1a2s1">test</span></a>
<span class="span2">
<a href="#" id="s2a1">span2a1</a>
</span>
<span class="span3"></span>
<custom-dashed-tag class="dashed" id="dash2"/>
<div data-tag="dashedvalue" id="data1"/>
</span>
</div>
<x id="xid">
<z id="zida"/>
<z id="zidab"/>
<z id="zidac"/>
</x>
<y id="yid">
<z id="zidb"/>
</y>
<p lang="en" id="lang-en">English</p>
<p lang="en-gb" id="lang-en-gb">English UK</p>
<p lang="en-us" id="lang-en-us">English US</p>
<p lang="fr" id="lang-fr">French</p>
</div>

<div id="footer">
</div>
c�:�t|jd��|_dS)Nrf)r�HTMLr�rs r�setup_methodzTestCSSSelectors.setup_methods��!�$�)�]�;�;��	�	�	rc	��d�|jj|fi|��D��}|���|���||ks:Jd|�dd�|���dd�|���d����dS)Nc��g|]
}|d��S��idr:)�.0�els  r�
<listcomp>z3TestCSSSelectors.assert_selects.<locals>.<listcomp>s��J�J�J�r�"�T�(�J�J�Jrz	Selector z, expected [z, z], got [�])r�select�sort�join)r�selector�expected_ids�kwargs�el_idss     r�assert_selectszTestCSSSelectors.assert_selectss���J�J�%5�T�Y�%5�h�%I�%I�&�%I�%I�J�J�J�����
�
�
��������v�%�%�%�%����$�)�)�L�1�1�1�1�4�9�9�V�3D�3D�3D�3D�(
�%�%�%�%�%rc�B�|D]\}}|�||���dSrW�r�)r�testsr�r�s    r�assert_select_multiplez'TestCSSSelectors.assert_select_multiple"s9��&+�	8�	8�"�H�l�����,�7�7�7�7�	8�	8rc��|j�d��}t|��dksJ�|djdksJ�|djdgksJ�dS)N�titlerrz	The title)rr��lenr�r��r�elss  r�test_one_tag_onez!TestCSSSelectors.test_one_tag_one&s`���i���w�'�'���3�x�x�1�}�}�}�}��1�v�{�g�%�%�%�%��1�v��;�-�/�/�/�/�/�/rc���|j�d��}t|��dksJ�|D]}|jdksJ��|j�d��}d|dksJ�dS)Nrq��mainr�)rr�r�r��
select_one)rr�rqr�s    r�test_one_tag_manyz"TestCSSSelectors.test_one_tag_many,s���i���u�%�%���3�x�x�1�}�}�}�}��	%�	%�C��8�u�$�$�$�$�$�
�Y�
!�
!�%�
(�
(����D��!�!�!�!�!�!rc�J�|j�d��}d|ksJ�dS)N�nonexistenttag)rr�)r�matchs  r�(test_select_one_returns_none_if_no_matchz9TestCSSSelectors.test_select_one_returns_none_if_no_match5s)���	�$�$�%5�6�6���u�}�}�}�}�}�}rc�j�|j�d��}|�dddg��dS)Nzdiv div�inner�data1)rr�r�r�s  r�test_tag_in_tag_onez$TestCSSSelectors.test_tag_in_tag_one:s8���i���y�)�)�����I���'9�:�:�:�:�:rc�@�dD]}|�|gd����dS)N)�html div�
html body div�body div�r�r�r��footerr��rr�s  r�test_tag_in_tag_manyz%TestCSSSelectors.test_tag_in_tag_many>s?��A�	P�	P�H�����*N�*N�*N�O�O�O�O�	P�	Prc��|�ddgd���|�dddgd���|�dgd	�d
���dS)Nr�r�r)�limitr�r��r�r��
r�r�s r�
test_limitzTestCSSSelectors.test_limitCst�����J�����:�:�:����O�g�v�->�a��H�H�H����J�(L�(L�(L�!#�	�	%�	%�	%�	%�	%rc�`�t|j�d����dksJ�dS)N�delr�r�rr�r�s r�test_tag_no_matchz"TestCSSSelectors.test_tag_no_matchIs1���4�9�#�#�E�*�*�+�+�q�0�0�0�0�0�0rc��tjt��5|j�d��ddd��dS#1swxYwYdS)Nztag%t�r#r$r	rr�r�s r�test_invalid_tagz!TestCSSSelectors.test_invalid_tagLs���
�]�.�
/�
/�	&�	&��I���W�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&��A�A�	Ac�6�|�dddg��dS)N�custom-dashed-tag�dash1�dash2r�r�s r�test_select_dashed_tag_idsz+TestCSSSelectors.test_select_dashed_tag_idsPs$�����/�'�7�1C�D�D�D�D�Drc��|j�d��}|djdksJ�|dddksJ�dS)Nzcustom-dashed-tag[id="dash2"]rr�r�r�)rr�r�)r�dasheds  r�test_select_dashed_by_idz)TestCSSSelectors.test_select_dashed_by_idSsO����!�!�"C�D�D���a�y�~�!4�4�4�4�4��a�y���'�)�)�)�)�)�)rc�\�|j�d��djdksJ�dS)Nzbody > custom-dashed-tagrzHello there.)rr��textr�s r�test_dashed_tag_textz%TestCSSSelectors.test_dashed_tag_textXs2���y��� :�;�;�A�>�C�~�U�U�U�U�U�Urc�v�|j�d��|j�d��ksJ�dS)Nr�)rr��find_allr�s r�#test_select_dashed_matches_find_allz4TestCSSSelectors.test_select_dashed_matches_find_all[s;���y��� 3�4�4��	�8J�8J�K^�8_�8_�_�_�_�_�_�_rc�@�|�ddgfdddgf��dS)N�h1�header1�h2�header2�header3�r�r�s r�test_header_tagsz!TestCSSSelectors.test_header_tags^s;���#�#�
�I�;��
�I�y�)�*�	
�	
�	
�	
�	
rc��dD]Y}|j�|��}t|��dksJ�|djdksJ�|dddgksJ��ZdS)N)z.onepzp.onepzhtml p.oneprr�p�class�onep)rr�r�r�)rr�r�s   r�test_class_onezTestCSSSelectors.test_class_onedsx��:�	/�	/�H��)�"�"�8�,�,�C��s�8�8�q�=�=�=�=��q�6�;�#�%�%�%�%��q�6�'�?�v�h�.�.�.�.�.�		/�	/rc�d�|j�d��}t|��dksJ�dS)Nzdiv.onepr�rr�r�r�s  r�test_class_mismatched_tagz*TestCSSSelectors.test_class_mismatched_tagks.���i���z�*�*���3�x�x�1�}�}�}�}�}�}rc�>�dD]}|�|dg���dS)N)z	div#innerz#innerz
div div#innerr�r�r�s  r�test_one_idzTestCSSSelectors.test_one_idos6��@�	5�	5�H�����7�)�4�4�4�4�	5�	5rc�d�|j�d��}t|��dksJ�dS)Nz
#doesnotexistrr�r�s  r�test_bad_idzTestCSSSelectors.test_bad_idss.���i����/�/���3�x�x�1�}�}�}�}�}�}rc���|j�d��}t|��dksJ�|D]}|jdksJ��|dddgksJ�|d�d��rJ�dS)Nzdiv#inner p�r�rr�r�r)rr�r�r��has_attr)rr�r�s   r�test_items_in_idz!TestCSSSelectors.test_items_in_idws����i���}�-�-���3�x�x�1�}�}�}�}��	"�	"�B��7�c�>�>�>�>�>��1�v�g��6�(�*�*�*�*��q�6�?�?�7�+�+�+�+�+�+�+rc�j�dD]/}t|j�|����dksJ��0dS)N)zdiv#main delzdiv#main div.oopszdiv div#mainrr�r�s  r�test_a_bunch_of_emptysz'TestCSSSelectors.test_a_bunch_of_emptyssG��M�	8�	8�H��t�y�'�'��1�1�2�2�a�7�7�7�7�7�	8�	8rc�>�dD]}|�|dg���dS)N)z.class1zp.class1z.class2zp.class2z.class3zp.class3z
html p.class2zdiv#inner .class2�pmultir�r�s  r�test_multi_class_supportz)TestCSSSelectors.test_multi_class_support�s9��I�	6�	6�H�����8�*�5�5�5�5�	6�	6rc�>�dD]}|�|dg���dS)N)z.class1.class3z.class3.class2z.class1.class2.class3rr�r�s  r�test_multi_class_selectionz+TestCSSSelectors.test_multi_class_selection�s8��2�	6�	6�H�����8�*�5�5�5�5�	6�	6rc�d�|�dddg��|�ddg��dS)Nz.s1 > a�s1a1�s1a2z.s1 > a span�s1a2s1r�r�s r�test_child_selectorz$TestCSSSelectors.test_child_selector�s;�����I���'7�8�8�8����N�X�J�7�7�7�7�7rc�4�|�ddg��dS)Nz.s1 > a#s1a2 spanrr�r�s r�test_child_selector_idz'TestCSSSelectors.test_child_selector_id�s!�����/�(��<�<�<�<�<rc��|�ddgfddgfddgfddgfddgfddgfd	dgfd
gfddgfddgfd
dgfdgfdgfdgf��dS)Nzp[class="onep"]�p1z
p[id="p1"]z[class="onep"]z	[id="p1"]zlink[rel="stylesheet"]�l1zlink[type="text/css"]zlink[href="blah.css"]zlink[href="no-blah.css"]z[rel="stylesheet"]z[type="text/css"]z[href="blah.css"]z[href="no-blah.css"]zp[href="no-blah.css"]r�r�s r�test_attribute_equalsz&TestCSSSelectors.test_attribute_equals�s����#�#�
���'�
�D�6�"�
��v�&�
�4�&�!�
%��v�.�
$�t�f�-�
$�t�f�-�
'��,�
!�D�6�*�
 �4�&�)�
 �4�&�)�
#�R�(�
$�b�)�
#�R�(�	
�	
�	
�	
�	
rc
�~�|�ddgfddgfddgfddgfddgfddgfdd	gfd
d	gfdd	gfdd	gf�
�
dS)
Nzp[class~="class1"]rzp[class~="class2"]zp[class~="class3"]z[class~="class1"]z[class~="class2"]z[class~="class3"]za[rel~="friend"]�bobz
a[rel~="met"]z[rel~="friend"]z[rel~="met"]r�r�s r�test_attribute_tildez%TestCSSSelectors.test_attribute_tilde�s����#�#�
!�H�:�.�
!�H�:�.�
!�H�:�.�
 �8�*�-�
 �8�*�-�
 �8�*�-�
�%��)�
�u�g�&�
���(�
�e�W�%�	
�	
�	
�	
�	
rc��|�ddgfddgfdgfdgfdgfddgfdd	d
gfdd	d
gfdd
dgfdd
dgfddgfdd
gfddgf�
�
dS)Nz[rel^="style"]r
zlink[rel^="style"]znotlink[rel^="notstyle"]z[rel^="notstyle"]zlink[rel^="notstyle"]zlink[href^="bla"]za[href^="http://"]r�mez[href^="http://"]z	[id^="p"]rrz	[id^="m"]r�zdiv[id^="m"]z
a[id^="m"]zdiv[data-tag^="dashed"]r�r�r�s r�test_attribute_startswithz*TestCSSSelectors.test_attribute_startswith�s����#�#�
��v�&�
!�D�6�*�
'��,�
 �"�%�
$�b�)�
 �4�&�)�
!�E�4�=�1�
 �5�$�-�0�
�8�T�*�+�
�4��.�)�
�f�X�&�
�D�6�"�
&��	�2�	
�	
�	
�	
�	
rc	�^�|�ddgfddgfddgfdgd�fddgfd	gf��dS)
Nz[href$=".css"]r
zlink[href$=".css"]z
link[id$="1"]z	[id$="1"])r�r
rr�r�s2a1rr�zdiv[id$="1"]r�z[id$="noending"]r�r�s r�test_attribute_endswithz(TestCSSSelectors.test_attribute_endswith�sc���#�#�
��v�&�
!�D�6�*�
�t�f�%�
�]�]�]�^�
�g�Y�'�
��$�
	
�	
�	
�	
�	
rc���|�ddgfddgfdgfdgfdgfddgfdd	d
gfddd
gfddgfdd
gfddgfddgfddgfdgd�fddgfdgfdgd�fdd	d
gfddgfdddgfddgfd dgf��dS)!Nz[rel*="style"]r
zlink[rel*="style"]znotlink[rel*="notstyle"]z[rel*="notstyle"]zlink[rel*="notstyle"]zlink[href*="bla"]z[href*="http://"]rrz	[id*="p"]rrzdiv[id*="m"]r�z
a[id*="m"]z[href*=".css"]zlink[href*=".css"]z
link[id*="1"]z	[id*="1"])	r�r
rr�rrrrr�zdiv[id*="1"]r�z[id*="noending"]z[href*="."])rrr
za[href*="."]zlink[href*="."]zdiv[id*="n"]r�z
div[id*="nn"]zdiv[data-tag*="edval"]r�r�s r�test_attribute_containsz(TestCSSSelectors.test_attribute_contains�s���#�#�
��v�&�
!�D�6�*�
'��,�
 �"�%�
$�b�)�
 �4�&�)�
 �5�$�-�0�
�8�T�*�+�
�f�X�&�
�D�6�"�
��v�&�
!�D�6�*�
�t�f�%�
�e�e�e�f�
�g�Y�'�
��$�
�/�/�/�0�
�e�T�]�+�
���'�
�f�g�.�/�
�w�i�(�
%��y�1�3	
�	
�	
�	
�	
rc�P�|�dgd�fdgd�fddgfdgf��dS)Nz
p[lang|="en"])�lang-en�
lang-en-gb�
lang-en-usz[lang|="en"]z
p[lang|="fr"]�lang-frz
p[lang|="gb"]r�r�s r�test_attribute_exact_or_hypenz.TestCSSSelectors.test_attribute_exact_or_hypen�sT���#�#�
�E�E�E�F�
�D�D�D�E�
�y�k�*�
�b�!�		
�	
�	
�	
�	
rc�r�|�dgd�fddgfdddgfdgd	�fd
ddgfd
gfdgfddgf��dS)Nz[rel])r
rrz	link[rel]r
za[rel]rrz[lang])rrrrzp[class]rrz[blah]zp[blah]z
div[data-tag]r�r�r�s r�test_attribute_existsz&TestCSSSelectors.test_attribute_exists�s}���#�#�
�)�)�)�*�
�4�&�!�
��t�}�%�
�I�I�I�J�
�$��)�*�
�r�N�
��O�
�w�i�(�		
�		
�		
�		
�		
rc�r�d}t|d��}|�d��\}d|jksJ�dS)Nz]<div style="display: wrong">nope</div>
        <div style="display: right">yes</div>
        rfzdiv[style="display: right"]�yes)rr�r)rrr�chosens    r�"test_quoted_space_in_selector_namez3TestCSSSelectors.test_quoted_space_in_selector_namesG�����T�=�1�1���;�;�<�=�=�����
�%�%�%�%�%�%rc�4�tjt��5|j�d��ddd��n#1swxYwYtjt
��5|j�d��ddd��dS#1swxYwYdS)Nza:no-such-pseudoclassza:nth-of-type(a))r#r$�NotImplementedErrorrr�r	r�s r�test_unsupported_pseudoclassz-TestCSSSelectors.test_unsupported_pseudoclasss
��
�]�.�
/�
/�	6�	6��I���4�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��]�.�
/�
/�	1�	1��I���/�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1�#�A�A�A�%B
�
B�Bc���|j�d��}t|��dksJ�|djdksJ�|j�d��}t|��dksJ�|djdksJ�|j�d��}t|��dksJ�|j�d��}t|��dksJ�dS)	Nzdiv#inner p:nth-of-type(1)rr�	Some textzdiv#inner p:nth-of-type(3)�Anotherzdiv#inner p:nth-of-type(4)zdiv p:nth-of-type(0)�rr�r�rr�s  r�test_nth_of_typez!TestCSSSelectors.test_nth_of_types����i���;�<�<���3�x�x�1�}�}�}�}��1�v�}��+�+�+�+��i���;�<�<���3�x�x�1�}�}�}�}��1�v�}�	�)�)�)�)��i���;�<�<���3�x�x�1�}�}�}�}��i���5�6�6���3�x�x�1�}�}�}�}�}�}rc��|j�d��}t|��dksJ�|djdksJ�dS)Nzdiv#inner > p:nth-of-type(1)rrr+r-r�s  r�"test_nth_of_type_direct_descendantz3TestCSSSelectors.test_nth_of_type_direct_descendant"sH���i���=�>�>���3�x�x�1�}�}�}�}��1�v�}��+�+�+�+�+�+rc�4�|�ddg��dS)Nz#inner > p:nth-of-type(2)rr�r�s r�"test_id_child_selector_nth_of_typez3TestCSSSelectors.test_id_child_selector_nth_of_type's!�����7�$��@�@�@�@�@rc��|j�dd���}|�d��}|�|ddg��dS)Nrqr�r�r�r�)r�findr��assert_selects_ids)rr��selecteds   r�test_select_on_elementz'TestCSSSelectors.test_select_on_element*sO���	���u���0�0���<�<��&�&��	
����7�G�*<�=�=�=�=�=rc�`�|�ddg��|�dg��dS)Nz
.fancy #innerr�z.normal #innerr�r�s r�test_overspecified_child_idz,TestCSSSelectors.test_overspecified_child_id3s7�����O�g�Y�7�7�7����,�b�1�1�1�1�1rc���|�ddg��|�ddg��|�ddg��g|j�d��ksJ�dS)Nz#p1 + h2r�z#p1 + h2 + prz#p1 + #header2 + .class1z#p1 + p�r�rr�r�s r�test_adjacent_sibling_selectorz/TestCSSSelectors.test_adjacent_sibling_selector7sr�����J���4�4�4����N�X�J�7�7�7����6��
�C�C�C��T�Y�%�%�i�0�0�0�0�0�0�0�0rc��|�dddg��|�ddg��|�ddg��|�ddg��g|j�d��ksJ�dS)	Nz#p1 ~ h2r�r�z#p1 ~ #header2z#p1 ~ h2 + arz#p1 ~ h2 + [rel="me"]z#inner ~ h2r;r�s r�test_general_sibling_selectorz.TestCSSSelectors.test_general_sibling_selector=s������J��I�(>�?�?�?����,�y�k�:�:�:����N�T�F�3�3�3����3�d�V�<�<�<��T�Y�%�%�m�4�4�4�4�4�4�4�4rc��tjt��5|j�d��ddd��dS#1swxYwYdS)Nzh1 >r�r�s r�test_dangling_combinatorz)TestCSSSelectors.test_dangling_combinatorDs���
�]�.�
/�
/�	%�	%��I���V�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%r�c�6�|�dgd���dS)Nzp[lang] ~ p)rrrr�r�s r�2test_sibling_combinator_wont_select_same_tag_twicezCTestCSSSelectors.test_sibling_combinator_wont_select_same_tag_twiceHs%�����M�+R�+R�+R�S�S�S�S�Src�6�|�dddg��dS)Nzx, y�xid�yidr�r�s r�test_multiple_selectz%TestCSSSelectors.test_multiple_selectLs"�����F�U�E�N�3�3�3�3�3rc�6�|�dddg��dS)Nzx,yrDrEr�r�s r�"test_multiple_select_with_no_spacez3TestCSSSelectors.test_multiple_select_with_no_spaceOs"�����E�E�5�>�2�2�2�2�2rc�6�|�dddg��dS)Nzx,    yrDrEr�r�s r�$test_multiple_select_with_more_spacez5TestCSSSelectors.test_multiple_select_with_more_spaceRs"�����I��u�~�6�6�6�6�6rc�4�|�ddg��dS)Nzx, xrDr�r�s r�test_multiple_select_duplicatedz0TestCSSSelectors.test_multiple_select_duplicatedUs �����F�U�G�,�,�,�,�,rc�6�|�dddg��dS)Nzx, y ~ p[lang=fr]rDrr�r�s r�test_multiple_select_siblingz-TestCSSSelectors.test_multiple_select_siblingXs$�����/�%��1C�D�D�D�D�Drc�6�|�dddg��dS)Nzx, y > zrD�zidbr�r�s r�.test_multiple_select_tag_and_direct_descendantz?TestCSSSelectors.test_multiple_select_tag_and_direct_descendant[s"�����J����8�8�8�8�8rc�6�|�dgd���dS)Nz
div > x, y, z�rDrE�zidarP�zidab�zidacr�r�s r�/test_multiple_select_direct_descendant_and_tagsz@TestCSSSelectors.test_multiple_select_direct_descendant_and_tags^s%�����O�-]�-]�-]�^�^�^�^�^rc�6�|�dgd���dS)Nzdiv x,y,  zrSr�r�s r�(test_multiple_select_indirect_descendantz9TestCSSSelectors.test_multiple_select_indirect_descendantas%�����M�+[�+[�+[�\�\�\�\�\rc�4�tjt��5|j�d��ddd��n#1swxYwYtjt��5|j�d��ddd��dS#1swxYwYdS)Nz,x, yzx,,yr�r�s r�test_invalid_multiple_selectz-TestCSSSelectors.test_invalid_multiple_selectds	��
�]�.�
/�
/�	&�	&��I���W�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�
�]�.�
/�
/�	%�	%��I���V�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%r)c�6�|�dddg��dS)Nzp[lang=en], p[lang=en-gb]rrr�r�s r�test_multiple_select_attrsz+TestCSSSelectors.test_multiple_select_attrsjs$�����7�)�\�9R�S�S�S�S�Src�6�|�dgd���dS)Nz*x, y > z[id=zida], z[id=zidab], z[id=zidb])rDrPrUr�r�s r�test_multiple_select_idsz)TestCSSSelectors.test_multiple_select_idsms&�����H�Jb�Jb�Jb�c�c�c�c�crc�6�|�dddg��dS)Nzbody > div > x, y > zrDrPr�r�s r�test_multiple_select_nestedz,TestCSSSelectors.test_multiple_select_nestedps#�����3�e�V�_�E�E�E�E�Erc��d}t|d��}|�d��}dt|��ksJ�|�ddg���D]}||vsJ��	dS)Nz3<div class="c1"/><div class="c2"/><div class="c1"/>rfz.c1, .c2r��c1�c2)�class_)rr�r�r�)rrGrr6�elements     r�test_select_duplicate_elementsz/TestCSSSelectors.test_select_duplicate_elementsss���G���V�]�3�3���;�;�z�*�*���C��M�M�!�!�!�!�
�}�}�T�4�L�}�9�9�	'�	'�G��h�&�&�&�&�&�	'�	'rN)?r6r7r8r9r�r�r��assertSelectr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rrrrrrr!r%r(r.r0r2r7r9r<r>r@rBrFrHrJrLrNrQrWrYr[r]r_rargr:rrr�r��s���������/�D�b<�<�<�
�
�
�"�L�8�8�8�0�0�0�"�"�"����
;�;�;�P�P�P�
%�%�%�1�1�1�&�&�&�E�E�E�*�*�*�
V�V�V�`�`�`�
�
�
�/�/�/����5�5�5����,�,�,�8�8�8�6�6�6�
6�6�6�
8�8�8�=�=�=�
�
�
�$
�
�
�
�
�
�"
�
�
�
�
�
�:
�
�
�

�

�

�&�&�&�1�1�1����&,�,�,�
A�A�A�>�>�>�2�2�2�1�1�1�5�5�5�%�%�%�T�T�T�4�4�4�3�3�3�7�7�7�-�-�-�E�E�E�9�9�9�_�_�_�]�]�]�%�%�%�T�T�T�d�d�d�F�F�F�'�'�'�'�'rr�c�N�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestPersistencez*Testing features like pickle and deepcopy.c�R�d|_|�|j��|_dS)Nay<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Beautiful Soup: We called him Tortoise because he taught us.</title>
<link rev="made" href="mailto:leonardr@segfault.org">
<meta name="Description" content="Beautiful Soup: an HTML parser optimized for screen-scraping.">
<meta name="generator" content="Markov Approximation 1.4 (module: leonardr)">
<meta name="author" content="Leonard Richardson">
</head>
<body>
<a href="foo">foo</a>
<a href="foo"><b>bar</b></a>
</body>
</html>)�pager�treer�s rr�zTestPersistence.setup_method�s&����	� �I�I�d�i�(�(��	�	�	rc���tj|jd��}tj|��}|jt
ksJ�|���|j���ksJ�dS)Nr�)�pickle�dumpsrm�loads�	__class__rrD)r�dumped�loadeds   r�!test_pickle_and_unpickle_identityz1TestPersistence.test_pickle_and_unpickle_identity�sg����d�i��+�+����f�%�%����=�0�0�0�0��}�}���$�)�"2�"2�"4�"4�4�4�4�4�4�4rc��tj|j��}|���|j���ksJ�dSrW)�copy�deepcopyrmrD)r�copieds  r�test_deepcopy_identityz&TestPersistence.test_deepcopy_identity�s@����t�y�)�)���}�}���$�)�"2�"2�"4�"4�4�4�4�4�4�4rc��tdd��}|j}|���}dt|��ksJ�||jksJ�dS)Ns
<p>&nbsp;</p>rfu	<p> </p>)r�original_encoding�__copy__r|)rrr,rws    r�test_copy_preserves_encodingz,TestPersistence.test_copy_preserves_encoding�sX���-�}�=�=���)���}�}�����c�$�i�i�'�'�'�'��4�1�1�1�1�1�1�1rc�V�|�d��j}d|_d|_|���}|j|jksJ�|j|jksJ�|j|jksJ�|j|jksJ�|j|jksJ�|j|jksJ�dS)Nz<p></p>r��!)	rr��
sourceline�	sourceposr}�can_be_empty_element�cdata_list_attributes�preserve_whitespace_tags�interesting_string_types)r�tagrys   r�'test_copy_preserves_builder_informationz7TestPersistence.test_copy_preserves_builder_information�s����i�i�	�"�"�$�������
��������~��!2�2�2�2�2��}�� 0�0�0�0�0��'�6�+F�F�F�F�F��(�F�,H�H�H�H�H��+�v�/N�N�N�N�N��+�v�/N�N�N�N�N�N�Nrc���d}|�|��}tj|tj��}tj|��}|���|���ksJ�dSr3)rrorp�HIGHEST_PROTOCOLrqrD)rrrrsrts     r�test_unicode_picklez#TestPersistence.test_unicode_pickle�s`��#���y�y�������d�F�$;�<�<����f�%�%���}�}���$�+�+�-�-�/�/�/�/�/�/rc��d}|�|��}|�d���}tj|��}||ksJ�d|jksJ�d|jksJ�d|jksJ�d|jksJ�d|jksJ�dS)Nz<b>Foo<a></a></b><b>Bar</b>�Foo�r)rr4rw�parent�next_element�next_sibling�previous_element�rrr�s1�s2s     r�1test_copy_navigablestring_is_not_attached_to_treezATestPersistence.test_copy_navigablestring_is_not_attached_to_tree�s���,���y�y�����
�Y�Y�e�Y�
$�
$��
�Y�r�]�]���R�x�x�x�x��r�y� � � � ��r��&�&�&�&��r��&�&�&�&��r��&�&�&�&��r�*�*�*�*�*�*�*rc��d}|�|��}|j}tj|��}||ksJ�t|t��sJ�dS)Nz<b><!--Foo--></b>)rrrw�
isinstancerr�s     r�0test_copy_navigablestring_subclass_has_same_typez@TestPersistence.test_copy_navigablestring_subclass_has_same_type�sS��"���y�y�����
�[��
�Y�r�]�]���R�x�x�x�x��"�g�&�&�&�&�&�&�&rc�l�d}|�|��}tj|��}||ksJ�dS)N�)<div><b>Foo<a></a></b><b>Bar</b></div>end)rrw)rrr�	soup_copys    r�test_copy_entire_soupz%TestPersistence.test_copy_entire_soup�s:��:���y�y������I�d�O�O�	��y� � � � � � rc��d}|�|��}|j}tj|��}t|��t|��ksJ�||ksJ�||usJ�d|jksJ�d|jksJ�d|�d���jksJ�d|�d���jksJ�dS)Nr��Barr�)rrqrwr|r�r�r4r�)rrrrq�div_copys     r�test_copy_tag_copies_contentsz-TestPersistence.test_copy_tag_copies_contents�s���:���y�y������h���9�S�>�>���3�x�x�3�x�=�=�(�(�(�(��h������(�"�"�"�"��x��&�&�&�&��x�0�0�0�0�0��x�}�}�E�}�2�2�?�?�?�?�?��s�x�x�u�x�-�-�:�:�:�:�:�:�:rN)r6r7r8r9r�rurzr~r�r�r�r�r�r�r:rrrjrj�s�������0�0�)�)�)�&5�5�5�5�5�5�
2�2�2�O�O�O�&0�0�0�
+�
+�
+�'�'�'�!�!�!�;�;�;�;�;rrj)r9rwror#�bs4r�bs4.elementrr�rr�	soupsiever	rr<�mark�skipifr�rjr:rr�<module>r�s���0�0�����
�
�
�
�
�
�
�
�����������������������
�.�-�-�-�-�-�-�,"�,"�,"�,"�,"�8�,"�,"�,"�^V.�V.�V.�V.�V.�X�V.�V.�V.�r����*�*�3M��N�N�c'�c'�c'�c'�c'�x�c'�c'�O�N�c'�L
q;�q;�q;�q;�q;�h�q;�q;�q;�q;�q;r

Youez - 2016 - github.com/yon3zu
LinuXploit