
    (ph                         S r SSKrSSKrSSKJr  SSKJr  SSKJr	J
r
Jr  SSKJr  SSKJrJr  \(       a  SS	KJr  \(       a  SS
KJrJr   " S S\5      r " S S\5      rg)zTests of the builder registry.    N)Type)BeautifulSoup)builder_registryTreeBuilderTreeBuilderRegistry)HTMLParserTreeBuilder   )HTML5LIB_PRESENTLXML_PRESENT)HTML5TreeBuilder)LXMLTreeBuilderForXMLLXMLTreeBuilderc                   0    \ rS rSrSrS rS rS rS rSr	g)	TestBuiltInRegistry    z@Test the built-in registry with the default builders registered.c                 :   [         R                  " SS5      [        :X  d   e[        (       aB  [         R                  " SS5      [        :X  d   e[         R                  " SS5      [
        :X  d   e[        (       a"  [         R                  " SS5      [        :X  d   eg g )Nstricthtmlfast
permissivexmlhtml5lib)registrylookupr   r   r   r   r
   r   selfs    R/var/www/html/venv/lib/python3.13/site-packages/bs4/tests/test_builder_registry.pytest_combination$TestBuiltInRegistry.test_combination#   sy    x04IIII<??662oEEE??<7;PPPP??:v6:JJJJ     c                 f   [         (       aA  [        R                  " S5      [        :X  d   e[        R                  " S5      [        :X  d   eg [        R                  " S5      b   e[
        (       a!  [        R                  " S5      [        :X  d   eg [        R                  " S5      [        :X  d   eg )Nr   r   )r   r   r   r   r   r
   r   r   r   s    r   test_lookup_by_markup_type.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                 4   [         (       aB  [        R                  " SS5      [        :X  d   e[        R                  " SS5      [        :X  d   e[
        (       a   [        R                  " S5      [        :X  d   e[        R                  " S5      [        :X  d   eg )Nlxmlr   r   r   zhtml.parser)r   r   r   r   r   r
   r   r   r   s    r   test_named_library&TestBuiltInRegistry.test_named_library6   sp    <??6515JJJJ??662oEEE??:.2BBBB}-1FFFFr    c                 
   [         R                  " SS9   [        SSS9  [        SSS/S9   S S S 5        [        R                  " [
        5         [        SSS9  S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)NT)record r   )featuresr   zno-such-feature)warningscatch_warningsr   pytestraises
ValueErrorr   s    r   *test_beautifulsoup_constructor_does_lookup>TestBuiltInRegistry.test_beautifulsoup_constructor_does_lookup?   sf    $$D1
 "v."'78 2 ]]:&"'89 '& 21 '&s   A#A4#
A14
B N)
__name__
__module____qualname____firstlineno____doc__r   r"   r&   r1   __static_attributes__r3   r    r   r   r       s    JK	HG:r    r   c                   `    \ rS rSrSrS rS\S\\   4S jr	S r
S rS	 rS
 rS rS rS rSrg)TestRegistryP   z.Test the TreeBuilderRegistry class in general.c                 "    [        5       U l        g N)r   r   r   s    r   setup_methodTestRegistry.setup_methodS   s    +-r    feature_listreturnc                     [        SSR                  U5      -   [        4SU05      nU R                  R	                  U5        U$ )NBuilder__r+   )typejoinobjectr   register)r   rA   clss      r   builder_for_features!TestRegistry.builder_for_featuresV   sA    ,//&Z<V
 	s#
r    c                     U R                  5       nU R                  R                  S5      b   eU R                  R                  5       U:X  d   eg )NfoorK   r   r   r   builders     r   test_register_with_no_features+TestRegistry.test_register_with_no_features^   sJ    ++- }}##E*222 }}##%000r    c                     U R                  SS5      nU R                  R                  S5      UL d   eU R                  R                  S5      UL d   eg NrN   barrO   rP   s     r   0test_register_with_features_makes_lookup_succeed=TestRegistry.test_register_with_features_makes_lookup_succeedi   sN    ++E59}}##E*g555}}##E*g555r    c                 @    U R                   R                  S5      b   eg )Nbazr   r   r   s    r   4test_lookup_fails_when_no_builder_implements_featureATestRegistry.test_lookup_fails_when_no_builder_implements_featuren   s    }}##E*222r    c                     U R                  S5        U R                  S5      nU R                  R                  5       U:X  d   eg rU   rO   )r   builder2s     r   Ctest_lookup_gets_most_recent_registration_when_no_feature_specifiedPTestRegistry.test_lookup_gets_most_recent_registration_when_no_feature_specifiedq   s;    !!%(,,U3}}##%111r    c                 >    U R                   R                  5       b   eg r>   r[   r   s    r   2test_lookup_fails_when_no_tree_builders_registered?TestRegistry.test_lookup_fails_when_no_tree_builders_registeredv   s    }}##%---r    c                 b   U R                  S5        U R                  S5        U R                  SSS5      nU R                  SSS5      nU R                  S5        U R                  S5        U R                  R                  SS5      U:X  d   eU R                  R                  SSS5      U:X  d   eg )NrN   rV   rZ   quuxrO   )r   has_both_earlyhas_both_lates      r   <test_lookup_gets_most_recent_builder_supporting_all_featuresITestRegistry.test_lookup_gets_most_recent_builder_supporting_all_featuresy   s    !!%(!!%(225%G11%G!!%(!!%( }}##E51]BBB }}##E5%8NJJJr    c                     U R                  SS5        U R                  SS5        U R                  R                  SS5      b   eg )NrN   rV   rZ   rO   r   s    r   :test_lookup_fails_when_cannot_reconcile_requested_featuresGTestRegistry.test_lookup_fails_when_cannot_reconcile_requested_features   s?    !!%/!!%/}}##E51999r    )r   N)r4   r5   r6   r7   r8   r?   strr   r   rK   rR   rW   r\   r`   rc   ri   rl   r9   r3   r    r   r;   r;   P   sF    8.# ${:K 	16
32
.K:r    r;   )r8   r.   r,   typingr   bs4r   bs4.builderr   r   r   r   bs4.builder._htmlparserr   r*   r
   r   bs4.builder._html5libr   bs4.builder._lxmlr   r   rH   r   r;   r3   r    r   <module>ru      sQ    $     
 :
 6-:& -:`;:6 ;:r    