ó
}BOc           @   sâ   d  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
 rq 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_library8   s    

c         C   sC   t  d d d ƒt  d d d d g ƒ|  j t t  d d d ƒd  S(   Nt    t   featuresR	   R   s   no-such-feature(   R    t   assertRaisest
   ValueError(   R   (    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt*   test_beautifulsoup_constructor_does_lookupE   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   setUpS   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_featuresV   s    c         C   sE   |  j  ƒ  } |  j |  j j d ƒ d  ƒ |  j |  j j ƒ  | ƒ d  S(   Nt   foo(   R+   R   R   R   R   (   R   t   builder(    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   test_register_with_no_features]   s    c         C   sN   |  j  d d ƒ } |  j |  j j d ƒ | ƒ |  j |  j j d ƒ | ƒ d  S(   NR,   t   bar(   R+   R   R   R   (   R   R-   (    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt0   test_register_with_features_makes_lookup_succeedh   s    c         C   s2   |  j  d d ƒ } |  j |  j j d ƒ d  ƒ d  S(   NR,   R/   t   baz(   R+   R   R   R   R   (   R   R-   (    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt4   test_lookup_fails_when_no_builder_implements_featurem   s    c         C   s;   |  j  d ƒ } |  j  d ƒ } |  j |  j j ƒ  | ƒ d  S(   NR,   R/   (   R+   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_specifiedq   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_registeredv   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(   NR,   R/   R1   t   quux(   R+   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_featuresy   s    c         C   sG   |  j  d d ƒ } |  j  d d ƒ } |  j |  j j d d ƒ d  ƒ d  S(   NR,   R/   R1   (   R+   R   R   R   R   (   R   R3   R4   (    (    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"   R+   R.   R0   R2   R5   R6   R=   R>   (    (    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyR!   P   s   								(   R    t   unittestt   bs4R    t   bs4.builderR   R   R   R   R   t   TrueR   t   ImportErrort   FalseR   R   R   t   TestCaseR   R!   (    (    (    s@   ./lib/python2.7/site-packages/bs4/tests/test_builder_registry.pyt   <module>   s   



4