ó
­V]c           @   sî   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m	 Z	 y d d l m
 Z
 e Z Wn e k
 r} e Z n Xy  d d l m Z m Z e Z Wn e k
 r· e Z n Xd e j f d „  ƒ  YZ d	 e j f d
 „  ƒ  YZ d S(   s   Tests of the builder registry.iÿÿÿÿN(   t   BeautifulSoup(   t   builder_registryt   HTMLParserTreeBuildert   TreeBuilderRegistry(   t   HTML5TreeBuilder(   t   LXMLTreeBuilderForXMLt   LXMLTreeBuildert   BuiltInRegistryTestc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s@   Test the built-in registry with the default builders registered.c         C   s   t  r% |  j t j d d ƒ t ƒ n  t  rJ |  j t j d d ƒ t ƒ n  |  j t j d d ƒ t ƒ t r‹ |  j t j d d ƒ t ƒ n  d  S(   Nt   fastt   htmlt
   permissivet   xmlt   strictt   html5lib(	   t   LXML_PRESENTt   assertEqualt   registryt   lookupR   R   R   t   HTML5LIB_PRESENTR   (   t   self(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   test_combination    s    

c         C   s“   t  r; |  j t j d ƒ t ƒ |  j t j d ƒ t ƒ nT |  j t j d ƒ d  ƒ t rv |  j t j d ƒ t ƒ n |  j t j d ƒ t	 ƒ d  S(   NR	   R   (
   R   R   R   R   R   R   t   NoneR   R   R   (   R   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   test_lookup_by_markup_type.   s    c         C   s€   t  rA |  j t j d d ƒ t ƒ |  j t j d d ƒ t ƒ n  t rc |  j t j d ƒ t ƒ n  |  j t j d ƒ t ƒ d  S(   Nt   lxmlR   R	   R   s   html.parser(	   R   R   R   R   R   R   R   R   R   (   R   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   test_named_library9   s    

c      	   C   s^   t  j d t ƒ - } t d d d ƒt d d d d g ƒWd  QX|  j t t d d d ƒd  S(   Nt   recordt    t   featuresR	   R   s   no-such-feature(   t   warningst   catch_warningst   TrueR    t   assertRaisest
   ValueError(   R   t   w(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt*   test_beautifulsoup_constructor_does_lookupF   s
    (   t   __name__t
   __module__t   __doc__R   R   R   R"   (    (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyR      s
   			t   RegistryTestc           B   s_   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   s.   Test the TreeBuilderRegistry class in general.c         C   s   t  ƒ  |  _ d  S(   N(   R   R   (   R   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   setUpY   s    c         G   s=   t  d d j | ƒ t f i | d 6ƒ } |  j j | ƒ | S(   Nt   Builder_t   _R   (   t   typet   joint   objectR   t   register(   R   t   feature_listt   cls(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   builder_for_features\   s    c         C   sE   |  j  ƒ  } |  j |  j j d ƒ d  ƒ |  j |  j j ƒ  | ƒ d  S(   Nt   foo(   R0   R   R   R   R   (   R   t   builder(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   test_register_with_no_featuresc   s    c         C   sN   |  j  d d ƒ } |  j |  j j d ƒ | ƒ |  j |  j j d ƒ | ƒ d  S(   NR1   t   bar(   R0   R   R   R   (   R   R2   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt0   test_register_with_features_makes_lookup_succeedn   s    c         C   s2   |  j  d d ƒ } |  j |  j j d ƒ d  ƒ d  S(   NR1   R4   t   baz(   R0   R   R   R   R   (   R   R2   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt4   test_lookup_fails_when_no_builder_implements_features   s    c         C   s;   |  j  d ƒ } |  j  d ƒ } |  j |  j j ƒ  | ƒ d  S(   NR1   R4   (   R0   R   R   R   (   R   t   builder1t   builder2(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pytC   test_lookup_gets_most_recent_registration_when_no_feature_specifiedw   s    c         C   s   |  j  |  j j ƒ  d  ƒ d  S(   N(   R   R   R   R   (   R   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt2   test_lookup_fails_when_no_tree_builders_registered|   s    c         C   s«   |  j  d ƒ } |  j  d ƒ } |  j  d d d ƒ } |  j  d d d ƒ } |  j  d ƒ } |  j  d ƒ } |  j |  j j d d ƒ | ƒ |  j |  j j d d d ƒ | ƒ d  S(   NR1   R4   R6   t   quux(   R0   R   R   R   (   R   t   has_onet   has_the_othert   has_both_earlyt   has_both_latet	   lacks_one(    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt<   test_lookup_gets_most_recent_builder_supporting_all_features   s    c         C   sG   |  j  d d ƒ } |  j  d d ƒ } |  j |  j j d d ƒ d  ƒ d  S(   NR1   R4   R6   (   R0   R   R   R   R   (   R   R8   R9   (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt:   test_lookup_fails_when_cannot_reconcile_requested_features   s    (   R#   R$   R%   R'   R0   R3   R5   R7   R:   R;   RB   RC   (    (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyR&   V   s   								(   R%   t   unittestR   t   bs4R    t   bs4.builderR   R   R   R   R   R   R   t   ImportErrort   FalseR   R   R   t   TestCaseR   R&   (    (    (    s>   lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   <module>   s    



9