ó
­V]c           @   sK  d  Z  d d l Z d d l Z y" d d l Z e Z e j j Z Wn e	 k
 ra Z
 e Z d Z n Xe r d d l m Z m Z n  d d l m Z m Z d d l m Z m Z m Z d d l m Z d d l m Z d d	 l m Z m Z m Z m Z e e d
 ƒ d e e f d „  ƒ  Yƒ Z e e d ƒ d e e f d „  ƒ  Yƒ Z d S(   s@   Tests to ensure that the lxml tree builder generates good trees.iÿÿÿÿNi    (   t   LXMLTreeBuildert   LXMLTreeBuilderForXML(   t   BeautifulSoupt   BeautifulStoneSoup(   t   Commentt   Doctypet   SoupStrainer(   t   skipIf(   t   test_htmlparser(   t   HTMLTreeBuilderSmokeTestt   XMLTreeBuilderSmokeTestt   SoupTestR   s;   lxml seems not to be present, not testing its tree builder.t   LXMLTreeBuilderSmokeTestc           B   s]   e  Z d  Z e d „  ƒ Z d „  Z d „  Z e e p@ e	 d k  d ƒ d	 „  ƒ Z
 d
 „  Z RS(   s!   See ``HTMLTreeBuilderSmokeTest``.c         C   s   t  S(   N(   R    (   t   self(    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt   default_builder%   s    c         C   s4   |  j  d d ƒ |  j  d d ƒ |  j  d d ƒ d  S(   Ns   <p>foo&#10000000000000;bar</p>s   <p>foobar</p>s   <p>foo&#x10000000000000;bar</p>s   <p>foo&#1000000000;bar</p>(   t   assertSoupEquals(   R   (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt   test_out_of_range_entity)   s    

c         C   s   d  S(   N(    (   R   (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt*   test_entities_in_foreign_document_encoding1   s    i   i   i   i    s@   Skipping doctype test for old version of lxml to avoid segfault.c         C   s6   |  j  d ƒ } | j d } |  j d | j ƒ  ƒ d  S(   Ns
   <!DOCTYPE>i    t    (   t   soupt   contentst   assertEqualt   strip(   R   R   t   doctype(    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt   test_empty_doctype:   s    c         C   sd   t  j d t ƒ  } t d ƒ } Wd  QX|  j d t | j ƒ ƒ |  j d t | d j	 ƒ k ƒ d  S(   Nt   records   <b />u   <b/>s&   BeautifulStoneSoup class is deprecatedi    (
   t   warningst   catch_warningst   TrueR   R   t   unicodet   bt
   assertTruet   strt   message(   R   t   wR   (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt%   test_beautifulstonesoup_is_xml_parserB   s    (   i   i   i   i    (   t   __name__t
   __module__t   __doc__t   propertyR   R   R   R   t   LXML_PRESENTt   LXML_VERSIONR   R#   (    (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyR      s   			s?   lxml seems not to be present, not testing its XML tree builder.t   LXMLXMLTreeBuilderSmokeTestc           B   s&   e  Z d  Z e d „  ƒ Z d „  Z RS(   s!   See ``HTMLTreeBuilderSmokeTest``.c         C   s   t  S(   N(   R   (   R   (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyR   P   s    c         C   s4   |  j  d ƒ } |  j | j i d d 6d d 6ƒ d  S(   Ns£   <?xml version="1.1"?>
<root><tag xmlns="http://unprefixed-namespace.com">content</tag><prefix:tag xmlns:prefix="http://prefixed-namespace.com">content</tag></root>s$   http://www.w3.org/XML/1998/namespacet   xmls   http://prefixed-namespace.comt   prefix(   R   R   t   _namespaces(   R   R   (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt   test_namespace_indexingT   s
    	(   R$   R%   R&   R'   R   R.   (    (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyR*   J   s   (   i    (   R&   t   reR   t
   lxml.etreet   lxmlR   R(   t   etreeR)   t   ImportErrort   et   Falset   bs4.builderR    R   t   bs4R   R   t   bs4.elementR   R   R   t   bs4.testingR   t	   bs4.testsR   R	   R
   R   R   R*   (    (    (    s2   lib/python2.7/site-packages/bs4/tests/test_lxml.pyt   <module>   s0   
"	(	