HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/bs4/tests/__pycache__/test_soup.cpython-311.pyc
�

��nc�E����dZddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZm
Z
mZddlmZmZmZddlmZmZmZmZddlmZmZmZddlZ	dd	lmZmZd
Zn#e $rZ!dZYdZ![!ndZ![!wwxYwej"ddko
ej"d
kZ#Gd�de��Z$Gd�de��Z%Gd�de��Z&Gd�de��Z'Gd�de��Z(Gd�de��Z)Gd�de��Z*dS)z#Tests of Beautiful Soup as a whole.�)�	set_traceN)�
BeautifulSoup�BeautifulStoneSoup�GuessedAtParserWarning�MarkupResemblesLocatorWarning�dammit)�builder_registry�TreeBuilder�ParserRejectedMarkup)�Comment�SoupStrainer�Tag�NavigableString�)�default_builder�SoupTest�skipIf)�LXMLTreeBuilder�LXMLTreeBuilderForXMLTF�)r�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�TestConstructorc�X�d}|�|��}d|jjksJ�dS)Nu
<h1>éé</h1>uéé��soup�h1�string��self�datars   �5D:\Python311\Lib\site-packages\bs4/tests/test_soup.py�test_short_unicode_inputz(TestConstructor.test_short_unicode_input0s1�����y�y���������'�'�'�'�'�'�c�X�d}|�|��}d|jjksJ�dS)Nz<h1>foobar</h1>zfoobarrrs   r"�test_embedded_nullz"TestConstructor.test_embedded_null5s1��"���y�y������T�W�^�+�+�+�+�+�+r$c�z�d�d��}|�|dg���}d|jksJ�dS)Nu
Räksmörgås�utf-8)�exclude_encodingszwindows-1252)�encoder�original_encoding)r �	utf8_datars   r"�test_exclude_encodingsz&TestConstructor.test_exclude_encodings:sF��#�*�*�7�3�3�	��y�y��w�i�y�@�@����!7�7�7�7�7�7�7r$c�z�Gd�dt��}tdd���}tjd���5t	dd|i|��}ddd��n#1swxYwYt|j|��sJ�td�	��|jjksJ�d
|jjksJ�|di|��}tjd���5}t	d|d���}ddd��n#1swxYwYt|dj
��}|�d
��sJ�||jksJ�||jksJ�dS)Nc�:�eZdZd�Zd�Zd�Zd�Zd�ZexZZ	d�Z
dS)�7TestConstructor.test_custom_builder_class.<locals>.Mockc�Z�||_d|_d|_g|_g|_i|_dS)NTF)�called_with�is_xml�store_line_numbers�cdata_list_attributes�preserve_whitespace_tags�string_containers)r �kwargss  r"�__init__z@TestConstructor.test_custom_builder_class.<locals>.Mock.__init__Cs7��#)�� �"���*/��'�-/��*�02��-�)+��&�&�&r$c��dS�N�)r rs  r"�initialize_soupzGTestConstructor.test_custom_builder_class.<locals>.Mock.initialize_soupJ����r$c��||_dSr;)�fed�r �markups  r"�feedz<TestConstructor.test_custom_builder_class.<locals>.Mock.feedLs
��!����r$c��dSr;r<�r s r"�resetz=TestConstructor.test_custom_builder_class.<locals>.Mock.resetNr>r$c��dSr;r<)r �ignores  r"rHz>TestConstructor.test_custom_builder_class.<locals>.Mock.ignorePr>r$c?�K�dV�dS)N)�prepared markupzoriginal encodingzdeclared encodingzcontains replacement charactersr<�r �argsr8s   r"�prepare_markupzFTestConstructor.test_custom_builder_class.<locals>.Mock.prepare_markupSs����t�t�t�t�t�tr$N)�__name__�
__module__�__qualname__r9r=rCrFrH�set_up_substitutions�can_be_empty_elementrMr<r$r"�Mockr0Bs������
,�
,�
,�
�
�
�
"�
"�
"�
�
�
�
�
�
�:@�@� �#7�
u�
u�
u�
u�
ur$rS�valueT)�var�convertEntities��record��builder)rUrJ)rZ�
ignored_valuerzCKeyword arguments to the BeautifulSoup constructor will be ignored.)rYr<)�object�dict�warnings�catch_warningsr�
isinstancerZr2r@�str�message�
startswith)r rSr8rrZ�w�msgs       r"�test_custom_builder_classz)TestConstructor.test_custom_builder_class?s��	u�	u�	u�	u�	u�6�	u�	u�	u�(��!�	
�
�
���
$�D�
1�
1�
1�	=�	=� �<�<�T�<�V�<�<�D�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=��$�,��-�-�-�-�-��� � � �D�L�$<�<�<�<�<� �D�L�$4�4�4�4�4�
�$�.�.��.�.��
�
$�D�
1�
1�
1�	�Q� ��G�4����D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��!�A�$�,�����~�~�c�d�d�d�d�d��$�,�&�&�&�&���,�,�,�,�,�,�,s#�A�A�A�C%�%C)�,C)c���Gd�dt��}d�}ddl}tjt��5}td|���ddd��n#1swxYwYdt
|j��vsJ�dS)Nc��eZdZd�ZdS)�:TestConstructor.test_parser_markup_rejection.<locals>.Mockc� �td���)NzNope.)rrKs   r"rCz?TestConstructor.test_parser_markup_rejection.<locals>.Mock.feedss��*�7�3�3�3r$N)rNrOrPrCr<r$r"rSrirs#������
4�
4�
4�
4�
4r$rSc?�>K�tdddfV�tdddfV�dS)NF)rBrKs   r"rMzDTestConstructor.test_parser_markup_rejection.<locals>.prepare_markupvs8�����$��e�+�+�+�+��$��e�+�+�+�+�+�+r$rrY)rZzoThe markup you provided was rejected by the parser. Trying a different parser or a different encoding may help.)r
�re�pytest�raisesrrrarT)r rSrMrl�exc_infos     r"�test_parser_markup_rejectionz,TestConstructor.test_parser_markup_rejectionos	��	4�	4�	4�	4�	4�;�	4�	4�	4�	,�	,�	,�	�	�	�	�
�]�/�
0�
0�	,�H��"�d�+�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�A�EH�IQ�IW�EX�EX�X�	X�	X�	X�	X�	Xs�A�A�Ac���d}|�|��}|j}d|dksJ�ddg|dksJ�|�|td���}d|jdksJ�ddiddifD]l}tjd	�
��5}|�|d|���}ddd��n#1swxYwY|j}ddg|dksJ�d|dksJ��mdS)Nz&<a id=" an id " class=" a class "></a>z an id �id�a�class)rZ�multi_valued_attributesz	 a class �*TrW�an)rrsrr^r_)r rBrrs�
switcheroords      r"�test_cdata_list_attributesz*TestConstructor.test_cdata_list_attributes�ss��:���y�y�� � ��
�F���A�d�G�#�#�#�#��W�~��7��+�+�+�+�
�y�y���RV�y�W�W���d�f�W�o�-�-�-�-� ��;��d��4�	-�	-�J��(��5�5�5�
[���y�y���z�y�Z�Z��
[�
[�
[�
[�
[�
[�
[�
[�
[�
[�
[����
[�
[�
[�
[���A��$�<�1�T�7�*�*�*�*��!�G�*�,�,�,�,�,�	-�	-s�B1�1B5	�8B5	c	�8����Gd�dt���Gd�dt���Gd�dt���|�dt�t�t�i���}t	���fd	�|���D����sJ�dS)
Nc��eZdZdS)�9TestConstructor.test_replacement_classes.<locals>.TagPlusN�rNrOrPr<r$r"�TagPlusr|���������Dr$r~c��eZdZdS)�<TestConstructor.test_replacement_classes.<locals>.StringPlusNr}r<r$r"�
StringPlusr��rr$r�c��eZdZdS)�=TestConstructor.test_replacement_classes.<locals>.CommentPlusNr}r<r$r"�CommentPlusr��rr$r�z<a><b>foo</b>bar</a><!--whee-->)�element_classesc3�>�K�|]}t|���f��V��dSr;)r`)�.0�xr�r�r~s  ���r"�	<genexpr>z;TestConstructor.test_replacement_classes.<locals>.<genexpr>�sH�����
�
��
�q�7�J��<�=�=�
�
�
�
�
�
r$)rrrr�all�recursiveChildGenerator)r rr�r�r~s  @@@r"�test_replacement_classesz(TestConstructor.test_replacement_classes�s�����	�	�	�	�	�c�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�'�	�	�	��y�y�-��W�������
�
���
�
�
�
�
�
��1�1�3�3�
�
�
�
�
�	
�	
�	
�	
�	
r$c�t�Gd�dt��}Gd�dt��}|�d||d����}t|jjdt��sJ�t|jjd|��sJ�|jjD]}t||��sJ��g|jksJ�dS)	Nc��eZdZdS)�ATestConstructor.test_alternate_string_containers.<locals>.PStringNr}r<r$r"�PStringr��rr$r�c��eZdZdS)�ATestConstructor.test_alternate_string_containers.<locals>.BStringNr}r<r$r"�BStringr��rr$r�z4<div>Hello.<p>Here is <b>some <i>bolded</i></b> text)�b�p)r7r)	rrr`�div�contentsr�r��strings�string_container_stack)r r�r�r�ss     r"� test_alternate_string_containersz0TestConstructor.test_alternate_string_containers�s��	�	�	�	�	�o�	�	�	�	�	�	�	�	�o�	�	�	��y�y�B���!�!��
�
���$�(�+�A�.��@�@�@�@�@��$�&�/�!�,�g�6�6�6�6�6����	*�	*�A��a��)�)�)�)�)�)��T�0�0�0�0�0�0�0r$N)rNrOrPr#r&r-rfrpryr�r�r<r$r"rr.s�������(�(�(�
,�,�,�
8�8�8�
.-�.-�.-�`X�X�X�&-�-�-�:
�
�
�81�1�1�1�1r$rc���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ej�
d	gd
���d���Zej�
d	gd���d
���Zd�Zd�Zd�Zd�ZdS)�TestWarningsc�f�|D]}t|j|��r|cS�t|�d|�����)Nz warning not found in )r`rb�	Exception)r r^�clsrds    r"�_assert_warningzTestWarnings._assert_warning�sL���	�	�A��!�)�S�)�)�
�����
�����X�X�F�G�G�Gr$c��|�|t��}t|j��}|�t
jdd���sJ�dS)N�<)r�rrarbrcr�NO_PARSER_SPECIFIED_WARNING)r rd�warningrbs    r"�_assert_no_parser_specifiedz(TestWarnings._assert_no_parser_specified�sS���&�&�q�*@�A�A���g�o�&�&���!�!�-�"K�C�R�C�"P�Q�Q�Q�Q�Q�Q�Qr$c��tjd���5}td��}ddd��n#1swxYwY|�|��dS)NTrW�<a><b></b></a>�r^r_rr��r rdrs   r"�#test_warning_if_no_parser_specifiedz0TestWarnings.test_warning_if_no_parser_specified�s���
�
$�D�
1�
1�
1�	3�Q� �!1�2�2�D�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��(�(��+�+�+�+�+s�2�6�6c��tjd���5}tdd��}ddd��n#1swxYwY|�|��dS)NTrWr��htmlr�r�s   r"�*test_warning_if_parser_specified_too_vaguez7TestWarnings.test_warning_if_parser_specified_too_vague�s���
�
$�D�
1�
1�
1�	;�Q� �!1�6�:�:�D�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;��(�(��+�+�+�+�+��3�7�7c��tjd���5}tdd��}ddd��n#1swxYwYg|ksJ�dS)NTrWr��html.parser)r^r_rr�s   r"�,test_no_warning_if_explicit_parser_specifiedz9TestWarnings.test_no_warning_if_explicit_parser_specified�s���
�
$�D�
1�
1�
1�	B�Q� �!1�=�A�A�D�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��Q�w�����r�c�(�tjd���5}|�dtd�����}ddd��n#1swxYwYt	|dj��}d|vsJ�d|vsJ�d	|���ksJ�dS)
NTrWr�r�)�parseOnlyTheserr��
parse_onlys<b></b>)r^r_rr
rarbr*)r rdrres    r"�)test_parseOnlyThese_renamed_to_parse_onlyz6TestWarnings.test_parseOnlyThese_renamed_to_parse_only�s���
�
$�D�
1�
1�
1�	Q�Q��9�9�-�l�3�>O�>O�9�P�P�D�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q����	Q�	Q�	Q�	Q��!�A�$�,�����3�&�&�&�&��s�"�"�"�"��T�[�[�]�]�*�*�*�*�*�*s�%A�A�Ac��tjd���5}d}|�|d���}ddd��n#1swxYwYt|dj��}d|vsJ�d|vsJ�d|jksJ�dS)	NTrWsé�utf8)�fromEncodingrr��
from_encoding)r^r_rrarbr+)r rdr�rres     r"�*test_fromEncoding_renamed_to_from_encodingz7TestWarnings.test_fromEncoding_renamed_to_from_encodings���
�
$�D�
1�
1�
1�	8�Q��D��9�9�T��9�7�7�D�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8��!�A�$�,������$�$�$�$��#�%�%�%�%���/�/�/�/�/�/�/s�<�A�Ac��tjt��5|�dd���ddd��dS#1swxYwYdS)Nz<a>T)�no_such_argument)rmrn�	TypeErrorrrEs r"�"test_unrecognized_keyword_argumentz/TestWarnings.test_unrecognized_keyword_argument
s���
�]�9�
%�
%�	4�	4��I�I�e�d�I�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�?�A�A�	extension)zmarkup.htmlz
markup.htmzmarkup.HTMLz
markup.txtzmarkup.xhtmlz
markup.xmlz/home/user/filezc:\userilec��tjd���5}|�d|z��}|�|t��}dt|j��vsJ�	ddd��dS#1swxYwYdS)NTrWrBzlooks more like a filename�r^r_rr�rrarb)r r�rdrr�s     r"�test_resembles_filename_warningz,TestWarnings.test_resembles_filename_warnings����
$�D�
1�
1�
1�	H�Q��9�9�X�	�1�2�2�D��*�*�1�.K�L�L�G�/�3�w��3G�3G�G�G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�AA0�0A4�7A4)�
markuphtmlz
markup.comrYz	markup.jsc��tjd���5}|�d|z��}ddd��n#1swxYwYg|ksJ�dS)NTrWrB)r^r_r)r r�rdrs    r"�"test_resembles_filename_no_warningz/TestWarnings.test_resembles_filename_no_warnings����
$�D�
1�
1�
1�	3�Q��9�9�X�	�1�2�2�D�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��Q�w�����s
�;�?�?c�J�d}tjd���5}|�|��}ddd��n#1swxYwY|�|t��}dt|j��vsJ�|t|j���d��vsJ�dS)Nshttp://www.crummybytes.com/TrW�looks more like a URLr�)r^r_rr�rrarbr*�r �url�warning_listrr�s     r"�test_url_warning_with_bytes_urlz,TestWarnings.test_url_warning_with_bytes_url's���,��
�
$�D�
1�
1�
1�	"�\��9�9�S�>�>�D�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��&�&��7�
�
��'�#�g�o�*>�*>�>�>�>�>��#�g�o�.�.�5�5�f�=�=�=�=�=�=�=�=�
�:�>�>c�$�d}tjd���5}|�|��}ddd��n#1swxYwY|�|t��}dt|j��vsJ�|t|j��vsJ�dS)Nzhttp://www.crummyunicode.com/TrWr�r�r�s     r"�!test_url_warning_with_unicode_urlz.TestWarnings.test_url_warning_with_unicode_url1s���-��
�
$�D�
1�
1�
1�	"�\��9�9�S�>�>�D�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��&�&��7�
�
��'�#�g�o�*>�*>�>�>�>�>��#�g�o�.�.�.�.�.�.�.�.r�c��tjd���5}|�d��}ddd��n#1swxYwYtd�|D����rJ�dS)NTrWs$http://www.crummybytes.com/ is greatc3�BK�|]}dt|j��vV��dS�r�N�rarb�r�rds  r"r�zETestWarnings.test_url_warning_with_bytes_and_space.<locals>.<genexpr>B�C����.�.��/�#�a�i�.�.�@�.�.�.�.�.�.r$�r^r_r�any�r r�rs   r"�%test_url_warning_with_bytes_and_spacez2TestWarnings.test_url_warning_with_bytes_and_space=s����
$�D�
1�
1�
1�	F�\��9�9�D�E�E�D�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F��.�.� ,�.�.�.�.�.�	.�	.�	.�	.�	.��8�<�<c��tjd���5}|�d��}ddd��n#1swxYwYtd�|D����rJ�dS)NTrWz&http://www.crummyunicode.com/ is greatc3�BK�|]}dt|j��vV��dSr�r�r�s  r"r�zGTestWarnings.test_url_warning_with_unicode_and_space.<locals>.<genexpr>Hr�r$r�r�s   r"�'test_url_warning_with_unicode_and_spacez4TestWarnings.test_url_warning_with_unicode_and_spaceEs���
�
$�D�
1�
1�
1�	G�\��9�9�E�F�F�D�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G��.�.� ,�.�.�.�.�.�	.�	.�	.�	.�	.r�N)rNrOrPr�r�r�r�r�r�r�r�rm�mark�parametrizer�r�r�r�r�r�r<r$r"r�r��sR������H�H�H�R�R�R�
,�,�,�
,�,�,�
���
+�+�+�0�0�0�4�4�4��[����	K�	K�	K���
H�H���
H��[����5�5�5�����	���>�>�>�
/�
/�
/�.�.�.�.�.�.�.�.r$r�c��eZdZd�ZdS)�TestSelectiveParsingc��d}td��}|�||���}|���dksJ�dS)Nz&No<b>Yes</b><a>No<b>Yes <c>Yes</c></b>r�)r�s<b>Yes</b><b>Yes <c>Yes</c></b>)r
rr*)r rB�strainerrs    r"�test_parse_with_soupstrainerz1TestSelectiveParsing.test_parse_with_soupstrainerNsI��9����$�$���y�y��H�y�5�5���{�{�}�}� B�B�B�B�B�B�Br$N)rNrOrPr�r<r$r"r�r�Ls(������C�C�C�C�Cr$r�c��eZdZdZd�Zd�ZdS)�
TestNewTagz(Test the BeautifulSoup.new_tag() method.c��|�d��}|�ddddi���}t|t��sJ�d|jksJ�tdd���|jksJ�d|jksJ�dS)NrY�foo�baz�nameza name)�bar�attrs)r�r�)r�new_tagr`rr�r]r��parent)r rr�s   r"�test_new_tagzTestNewTag.test_new_tagWs����y�y��}�}���,�,�u�%���7I�,�J�J���'�3�'�'�'�'�'����$�$�$�$���H�-�-�-���>�>�>�>��w�~�%�%�%�%�%�%r$c���trntdd��}|�d��}|�d��}d|���ksJ�d|���ksJ�tdd��}|�d��}|�d��}d|���ksJ�d|���ksJ�dS)	NrYzlxml-xml�brr�s<br/>s<p/>r�s<p></p>)�LXML_PRESENTrr�r*)r �xml_soup�xml_br�xml_p�	html_soup�html_br�html_ps       r"�1test_tag_inherits_self_closing_rules_from_builderz<TestNewTag.test_tag_inherits_self_closing_rules_from_builder_s����	-�$�R��4�4�H��%�%�d�+�+�F��$�$�S�)�)�E��v�}�}���.�.�.�.��e�l�l�n�n�,�,�,�,�!�"�m�4�4�	��#�#�D�)�)���"�"�3�'�'���7�>�>�+�+�+�+�+�+��V�]�]�_�_�,�,�,�,�,�,r$N)rNrOrP�__doc__r�r�r<r$r"r�r�Us8������2�2�&�&�&�-�-�-�-�-r$r�c��eZdZdZd�Zd�ZdS)�
TestNewStringz+Test the BeautifulSoup.new_string() method.c��|�d��}|�d��}d|ksJ�t|t��sJ�dS�NrYr�)r�
new_stringr`r�r rr�s   r"�'test_new_string_creates_navigablestringz5TestNewString.test_new_string_creates_navigablestringusN���y�y��}�}���O�O�E�"�"����z�����!�_�-�-�-�-�-�-�-r$c��|�d��}|�dt��}d|ksJ�t|t��sJ�dSr�)rrrr`rs   r"�3test_new_string_can_create_navigablestring_subclasszATestNewString.test_new_string_can_create_navigablestring_subclass{sP���y�y��}�}���O�O�E�7�+�+����z�����!�W�%�%�%�%�%�%�%r$N)rNrOrPr�rrr<r$r"r�r�ss8������5�5�.�.�.�&�&�&�&�&r$r�c��eZdZd�Zd�ZdS)�
TestPicklec��|�d��}tj|��}tj|��}d|jjksJ�dS)Nz<a>some markup</a>�some markup)r�pickle�dumps�loadsrsr�r r�pickled�	unpickleds    r"�test_normal_picklezTestPickle.test_normal_pickle�sN���y�y�-�.�.���,�t�$�$���L��)�)�	��	�� 2�2�2�2�2�2�2r$c��|�d��}d|_tj|��}tj|��}d|jksJ�dS)Nr)rrZr	r
rrrs    r"�test_pickle_with_no_builderz&TestPickle.test_pickle_with_no_builder�sT���y�y��'�'������,�t�$�$���L��)�)�	��	� 0�0�0�0�0�0�0r$N)rNrOrPrrr<r$r"rr�s2������3�3�3�1�1�1�1�1r$rc�V�eZdZd�Zd�Zd�Zd�Zd�Zee	d��d���Z
dS)	�TestEncodingConversionc�l�d|_|j�d��|_|jdksJ�dS)NuU<html><head><meta charset="utf-8"/></head><body><foo>Sacré bleu!</foo></body></html>r(sU<html><head><meta charset="utf-8"/></head><body><foo>Sacré bleu!</foo></body></html>)�unicode_datar*r,rEs r"�setup_methodz#TestEncodingConversion.setup_method�s?��U����*�1�1�'�:�:����~�!������r$c�J�tj}tjtj��	d�}|t_d}|�|��}|���}t|t��sJ�||�	|�����ksJ�|j
���dksJ�	tjtj��|t_dS#tjtj��|t_wxYw)Nc��dSr;r<)ras r"�noopz>TestEncodingConversion.test_ascii_in_unicode_out.<locals>.noop�s���tr$s<foo>a</foo>r()
r�chardet_dammit�logging�disable�WARNINGr�decoder`ra�document_forr+�lower�NOTSET)r �chardetr�ascii�soup_from_ascii�unicode_outputs      r"�test_ascii_in_unicode_outz0TestEncodingConversion.test_ascii_in_unicode_out�s���'������(�(�(�
	,�
�
�
�%)�F�!�#�E�"�i�i��.�.�O�,�3�3�5�5�N��n�c�2�2�2�2�2�!�T�%6�%6�u�|�|�~�~�%F�%F�F�F�F�F�"�4�:�:�<�<��G�G�G�G�G��O�G�N�+�+�+�$+�F�!�!�!��
�O�G�N�+�+�+�$+�F�!�+�+�+�+s�BC6�6,D"c��|�|j��}|���|jksJ�|jjdksJ�|jdksJ�dS�NuSacré bleu!)rrrr�rr+�r �soup_from_unicodes  r"�test_unicode_in_unicode_outz2TestEncodingConversion.test_unicode_in_unicode_out�sk��!�I�I�d�&7�8�8�� �'�'�)�)�T�->�>�>�>�>� �$�+�/?�?�?�?�?� �2�d�:�:�:�:�:�:r$c��|�|j��}|���|jksJ�|jjdksJ�dSr()rr,rrr�r)r �soup_from_utf8s  r"�test_utf8_in_unicode_outz/TestEncodingConversion.test_utf8_in_unicode_out�sU�����4�>�2�2���$�$�&�&�$�*;�;�;�;�;��!�(�,<�<�<�<�<�<�<r$c�z�|�|j��}|�d��|jksJ�dS)Nr()rrr*r,r)s  r"�
test_utf8_outz$TestEncodingConversion.test_utf8_out�s>�� �I�I�d�&7�8�8�� �'�'��0�0�D�N�B�B�B�B�B�Br$zQBad HTMLParser detected; skipping test of non-ASCII characters in attribute name.c��d}|�|��j�d��|�d��ksJ�dS)Nu <div><a ☃="snowman"></a></div>r�)rr�r*rAs  r"�1test_attribute_name_containing_unicode_characterszHTestEncodingConversion.test_attribute_name_containing_unicode_characters�sI��<���y�y�� � �$�+�+�F�3�3�v�}�}�V�7L�7L�L�L�L�L�L�Lr$N)rNrOrPrr&r+r.r0r�PYTHON_3_PRE_3_2r2r<r$r"rr�s�������@�@�@�,�,�,�(;�;�;�=�=�=�C�C�C�
�V��[�]�]�M�M�]�]�M�M�Mr$r)+r��pdbrr�osr	rm�sys�tempfile�bs4rrrrr�bs4.builderr	r
r�bs4.elementrr
rrrYrrrr^rrr��ImportError�e�version_infor3rr�r�r�r�rrr<r$r"�<module>r>s��)�)�����������	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
�����������������������������
����������������������
�����B�B�B�B�B�B�B�B��L�L�������L�L�L�L�L�L����������$�Q�'�1�,�I��1A�E�1I��l1�l1�l1�l1�l1�h�l1�l1�l1�^l.�l.�l.�l.�l.�8�l.�l.�l.�^C�C�C�C�C�8�C�C�C�-�-�-�-�-��-�-�-�<&�&�&�&�&�H�&�&�&�1�1�1�1�1��1�1�1�$7M�7M�7M�7M�7M�X�7M�7M�7M�7M�7Ms�
A�A0�$A+�+A0