B
    `	              
   @   s   d Z ddlZddlZyddlZdZejjZW n* ek
rV Z	 zdZdZW ddZ	[	X Y nX erlddl
mZmZ 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G dd deeZee dG dd deeZdS )z@Tests to ensure that the lxml tree builder generates good trees.    NTF)r   )LXMLTreeBuilderLXMLTreeBuilderForXML)BeautifulSoupBeautifulStoneSoup)CommentDoctypeSoupStrainer)skipIf)test_htmlparser)HTMLTreeBuilderSmokeTestXMLTreeBuilderSmokeTestSoupTestr	   z;lxml seems not to be present, not testing its tree builder.c               @   sX   e Zd ZdZedd Zdd Zdd Zee	 p6e
dk d	d
d Zdd Zdd ZdS )LXMLTreeBuilderSmokeTestz!See ``HTMLTreeBuilderSmokeTest``.c             C   s   t S )N)r   )self r   [/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/bs4/tests/test_lxml.pydefault_builder%   s    z(LXMLTreeBuilderSmokeTest.default_builderc             C   s(   |  dd |  dd |  dd d S )Nz<p>foo&#10000000000000;bar</p>z<p>foobar</p>z<p>foo&#x10000000000000;bar</p>z<p>foo&#1000000000;bar</p>)ZassertSoupEquals)r   r   r   r   test_out_of_range_entity)   s    z1LXMLTreeBuilderSmokeTest.test_out_of_range_entityc             C   s   d S )Nr   )r   r   r   r   *test_entities_in_foreign_document_encoding1   s    zCLXMLTreeBuilderSmokeTest.test_entities_in_foreign_document_encoding)         r   z@Skipping doctype test for old version of lxml to avoid segfault.c             C   s(   |  d}|jd }| d|  d S )Nz
<!DOCTYPE>r    )soupcontentsassertEqualstrip)r   r   doctyper   r   r   test_empty_doctype:   s    

z+LXMLTreeBuilderSmokeTest.test_empty_doctypec          	   C   sN   t jdd}td}W d Q R X | dt|j | dt|d jk d S )NT)recordz<b />z<b/>z&BeautifulStoneSoup class is deprecatedr   )warningscatch_warningsr   r   strb
assertTruemessage)r   wr   r   r   r   %test_beautifulstonesoup_is_xml_parserB   s    z>LXMLTreeBuilderSmokeTest.test_beautifulstonesoup_is_xml_parserc             C   s6   | j ddd}| d|jjj | d|jjj d S )Nz=
   <p>

<sourceline>
<b>text</b></sourceline><sourcepos></p>T)Zstore_line_numbers
sourceline	sourcepos)r   r   pr(   namer)   )r   r   r   r   r   test_tracking_line_numbersJ   s
    z3LXMLTreeBuilderSmokeTest.test_tracking_line_numbersN)__name__
__module____qualname____doc__propertyr   r   r   r	   LXML_PRESENTLXML_VERSIONr   r'   r,   r   r   r   r   r      s   	r   z?lxml seems not to be present, not testing its XML tree builder.c               @   s$   e Zd ZdZedd Zdd ZdS )LXMLXMLTreeBuilderSmokeTestz!See ``HTMLTreeBuilderSmokeTest``.c             C   s   t S )N)r   )r   r   r   r   r   _   s    z+LXMLXMLTreeBuilderSmokeTest.default_builderc             C   s"   |  d}| |jddd d S )Nz<?xml version="1.1"?>
<root><tag xmlns="http://unprefixed-namespace.com">content</tag><prefix:tag xmlns:prefix="http://prefixed-namespace.com">content</tag></root>z$http://www.w3.org/XML/1998/namespacezhttp://prefixed-namespace.com)xmlprefix)r   r   _namespaces)r   r   r   r   r   test_namespace_indexingc   s
    z3LXMLXMLTreeBuilderSmokeTest.test_namespace_indexingN)r-   r.   r/   r0   r1   r   r8   r   r   r   r   r4   Y   s   r4   )r0   rer    Z
lxml.etreelxmlr2   etreer3   ImportErroreZbs4.builderr   r   Zbs4r   r   Zbs4.elementr   r   r   Zbs4.testingr	   Z	bs4.testsr
   r   r   r   r   r4   r   r   r   r   <module>   s0   
7