Ë
    ò¦1hÈ  ã                   ó°   — d Z ddlZddlZddlmZ ddlmZ ddlmZ	m
Z
mZ ddlmZ ddlmZmZ erdd	lmZ erdd
lmZmZ  G d„ de«      Z G d„ de«      Zy)zTests of the builder registry.é    N)ÚType)ÚBeautifulSoup)Úbuilder_registryÚTreeBuilderÚTreeBuilderRegistry)ÚHTMLParserTreeBuilderé   )ÚHTML5LIB_PRESENTÚLXML_PRESENT)ÚHTML5TreeBuilder)ÚLXMLTreeBuilderForXMLÚLXMLTreeBuilderc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestBuiltInRegistryz@Test the built-in registry with the default builders registered.c                 ó  — t        j                  dd«      t        k(  sJ ‚t        r>t        j                  dd«      t        k(  sJ ‚t        j                  dd«      t
        k(  sJ ‚t        r t        j                  dd«      t        k(  sJ ‚y y )NÚstrictÚhtmlÚfastÚ
permissiveÚxmlÚhtml5lib)ÚregistryÚlookupr   r   r   r   r
   r   ©Úselfs    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/bs4/tests/test_builder_registry.pyÚtest_combinationz$TestBuiltInRegistry.test_combination#   st   € Ü�‰˜x¨Ó0Ô4IÒIÐIÐIÝÜ—?‘? 6¨6Ó2´oÒEÐEÐEÜ—?‘? <°Ó7Ô;PÒPÐPÐPÝÜ—?‘? :¨vÓ6Ô:JÒJÐJÑJð ó    c                 ó>  — t         r=t        j                  d«      t        k(  sJ ‚t        j                  d«      t        k(  sJ ‚y t        j                  d«      �J ‚t
        rt        j                  d«      t        k(  sJ ‚y t        j                  d«      t        k(  sJ ‚y )Nr   r   )r   r   r   r   r   r
   r   r   r   s    r   Útest_lookup_by_markup_typez.TestBuiltInRegistry.test_lookup_by_markup_type+   s|   € ÝÜ—?‘? 6Ó*¬oÒ=Ð=Ð=Ü—?‘? 5Ó)Ô-BÒBÐBÑBä—?‘? 5Ó)Ð1Ð1Ð1ÝÜ—‘ vÓ.Ô2BÒBÐBÑBä—‘ vÓ.Ô2GÒGÐGÑGr   c                 ó  — t         r>t        j                  dd«      t        k(  sJ ‚t        j                  dd«      t        k(  sJ ‚t
        rt        j                  d«      t        k(  sJ ‚t        j                  d«      t        k(  sJ ‚y )NÚlxmlr   r   r   zhtml.parser)r   r   r   r   r   r
   r   r   r   s    r   Útest_named_libraryz&TestBuiltInRegistry.test_named_library6   sk   € ÝÜ—?‘? 6¨5Ó1Ô5JÒJÐJÐJÜ—?‘? 6¨6Ó2´oÒEÐEÐEÝÜ—?‘? :Ó.Ô2BÒBÐBÐBä�‰˜}Ó-Ô1FÒFÐFÑFr   c                 ó
  — t        j                  d¬«      5  t        dd¬«       t        dddg¬«       	 d d d «       t        j                  t
        «      5  t        dd¬«       d d d «       y # 1 sw Y   Œ9xY w# 1 sw Y   y xY w)NT)ÚrecordÚ r   )Úfeaturesr   zno-such-feature)ÚwarningsÚcatch_warningsr   ÚpytestÚraisesÚ
ValueErrorr   s    r   Ú*test_beautifulsoup_constructor_does_lookupz>TestBuiltInRegistry.test_beautifulsoup_constructor_does_lookup?   sv   € Ü×$Ñ$¨DÔ1ñ 	ô
 ˜" vÕ.ä˜"¨°Ð'7Õ8Ø÷	ô �]‰]œ:Ó&ñ 	:Ü˜"Ð'8Õ9÷	:ð 	:÷	ð 	ú÷	:ð 	:ús   —A-ÁA9Á-A6Á9BN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r#   r-   © r   r   r   r       s   „ ÙJòKò	HòGó:r   r   c                   óV   — e Zd ZdZd„ Zdedee   fd„Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zy)ÚTestRegistryz.Test the TreeBuilderRegistry class in general.c                 ó"   — t        «       | _        y ©N)r   r   r   s    r   Úsetup_methodzTestRegistry.setup_methodS   s   € Ü+Ó-ˆ�r   Úfeature_listÚreturnc                 óˆ   — t        ddj                  |«      z   t        fd|i«      }| j                  j	                  |«       |S )NÚBuilder_Ú_r'   )ÚtypeÚjoinÚobjectr   Úregister)r   r8   Úclss      r   Úbuilder_for_featuresz!TestRegistry.builder_for_featuresV   sA   € ÜØ˜Ÿ™ ,Ó/Ñ/´&°¸ZÈÐ<Vó
ˆð 	�‰×Ñ˜sÔ#Øˆ
r   c                 óœ   — | j                  «       }| j                  j                  d«      �J ‚| j                  j                  «       |k(  sJ ‚y )NÚfoo©rB   r   r   ©r   Úbuilders     r   Útest_register_with_no_featuresz+TestRegistry.test_register_with_no_features^   sJ   € Ø×+Ñ+Ó-ˆð �}‰}×#Ñ# EÓ*Ð2Ð2Ð2ð �}‰}×#Ñ#Ó%¨Ò0Ð0Ñ0r   c                 ó¤   — | j                  dd«      }| j                  j                  d«      |u sJ ‚| j                  j                  d«      |u sJ ‚y ©NrD   ÚbarrE   rF   s     r   Ú0test_register_with_features_makes_lookup_succeedz=TestRegistry.test_register_with_features_makes_lookup_succeedi   sN   € Ø×+Ñ+¨E°5Ó9ˆØ�}‰}×#Ñ# EÓ*¨gÑ5Ð5Ð5Ø�}‰}×#Ñ# EÓ*¨gÑ5Ð5Ñ5r   c                 ó>   — | j                   j                  d«      �J ‚y )NÚbaz©r   r   r   s    r   Ú4test_lookup_fails_when_no_builder_implements_featurezATestRegistry.test_lookup_fails_when_no_builder_implements_featuren   s   € Ø�}‰}×#Ñ# EÓ*Ð2Ð2Ñ2r   c                 ó†   — | j                  d«       | j                  d«      }| j                  j                  «       |k(  sJ ‚y rJ   rE   )r   Úbuilder2s     r   ÚCtest_lookup_gets_most_recent_registration_when_no_feature_specifiedzPTestRegistry.test_lookup_gets_most_recent_registration_when_no_feature_specifiedq   s;   € Ø×!Ñ! %Ô(Ø×,Ñ,¨UÓ3ˆØ�}‰}×#Ñ#Ó%¨Ò1Ð1Ñ1r   c                 ó<   — | j                   j                  «       �J ‚y r6   rO   r   s    r   Ú2test_lookup_fails_when_no_tree_builders_registeredz?TestRegistry.test_lookup_fails_when_no_tree_builders_registeredv   s   € Ø�}‰}×#Ñ#Ó%Ð-Ð-Ñ-r   c                 ó^  — | j                  d«       | j                  d«       | j                  ddd«      }| j                  ddd«      }| j                  d«       | j                  d«       | j                  j                  dd«      |k(  sJ ‚| j                  j                  ddd«      |k(  sJ ‚y )NrD   rK   rN   ÚquuxrE   )r   Úhas_both_earlyÚhas_both_lates      r   Ú<test_lookup_gets_most_recent_builder_supporting_all_featureszITestRegistry.test_lookup_gets_most_recent_builder_supporting_all_featuresy   s¦   € Ø×!Ñ! %Ô(Ø×!Ñ! %Ô(Ø×2Ñ2°5¸%ÀÓGˆØ×1Ñ1°%¸ÀÓGˆØ×!Ñ! %Ô(Ø×!Ñ! %Ô(ð �}‰}×#Ñ# E¨5Ó1°]ÒBÐBÐBð �}‰}×#Ñ# E¨5°%Ó8¸NÒJÐJÑJr   c                 óˆ   — | j                  dd«       | j                  dd«       | j                  j                  dd«      �J ‚y )NrD   rK   rN   rE   r   s    r   Ú:test_lookup_fails_when_cannot_reconcile_requested_featureszGTestRegistry.test_lookup_fails_when_cannot_reconcile_requested_featuresˆ   s?   € Ø×!Ñ! %¨Ô/Ø×!Ñ! %¨Ô/Ø�}‰}×#Ñ# E¨5Ó1Ð9Ð9Ñ9r   N)r.   r/   r0   r1   r7   Ústrr   r   rB   rH   rL   rP   rS   rU   rZ   r\   r2   r   r   r4   r4   P   sF   „ Ù8ò.ð°#ð ¸$¸{Ñ:Kó ò	1ò6ò
3ò2ò
.òKó:r   r4   )r1   r*   r(   Útypingr   Úbs4r   Úbs4.builderr   r   r   r   Úbs4.builder._htmlparserr   r&   r
   r   Úbs4.builder._html5libr   Úbs4.builder._lxmlr   r   r?   r   r4   r2   r   r   ú<module>rd      sQ   ðÙ $ã Û Ý å ÷ñ õ
 :÷ñ
 Ý6á÷ô-:˜&ô -:ô`;:�6õ ;:r   