
:W                 @   sJ  d  d l  Z d  d l j j Z d  d l Z d  d l m Z m	 Z	 m
 Z
 Gd d   d e j j  Z d d   Z d d   Z d	 d
   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d    Z d! d"   Z d# d$   Z d% d&   Z d' d(   Z d) d*   Z  d S)+    N)unicodehtmlrawc               @   s   e  Z d  Z d S)nsN)__name__
__module____qualname__ r	   r	   >/home/ronny/Projects/pytest-dev/py/testing/root/test_xmlgen.pyr      s   r   c           
      s  t  j j d d    G  f d d   d  }  t  j j    } |   k } | st j d | f d |   f  d d t j   k s t j	 |  r t j
 |  n d d	 d
 t j   k s t j	    r t j
    n d
 i } d d | i } t t j |    d  } t  j j |     } |   k } | st j d | f d |   f  d d t j   k swt j	 |  rt j
 |  n d d	 d
 t j   k st j	    rt j
    n d
 i } d d | i } t t j |    d  } t  j j j d d k  rt | t  } | sd d d t j
 |  d d t j   k sYt j	 |  rht j
 |  n d d d t j   k st j	 t  rt j
 t  n d d	 d t j   k st j	 t  rt j
 t  n d i } t t j |    d  } t | t  } | sd d d t j
 |  d d t j   k sHt j	 |  rWt j
 |  n d d d t j   k s~t j	 t  rt j
 t  n d d	 d t j   k st j	 t  rt j
 t  n d i } t t j |    d  } t  j j   j d   } |   k } | st j d | f d |   f  d d t j   k sWt j	 |  rft j
 |  n d d	 d
 t j   k st j	    rt j
    n d
 i } d d | i } t t j |    d  } d  S)Nu   ÄÄ
â¬
zutf-8c                   s.   e  Z d  Z   f d d   Z d d   Z d S)ztest_escape.<locals>.Ac                s     S)Nr	   )self)uvaluer	   r
   __unicode__   s    z"test_escape.<locals>.A.__unicode__c             S   s6   |  j    } t j j j d d k  r2 | j d  S| S)Nr      zutf-8)r   pystdsysversion_infoencode)r   xr	   r	   r
   __str__   s    ztest_escape.<locals>.A.__str__N)r   r   r   r   r   r	   )r   r	   r
   A
   s   r   ==%(py0)s == %(py2)spy0ypy2r    assert %(py4)spy4r   r   r   z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}py1
isinstancer   )r   )r   r   )r   )r   r   )r   )r   r   )r   builtin_totextxmlescape
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr   r   r   r    r   r   )r   r   @py_assert1@py_format3@py_format5r   @py_assert3r	   )r   r
   test_escape   sD                           r1   c              C   s   t  j d  }  t |   } d } | | k } | s t j d | f d | | f  d d t j   k su t j |  r t j |  n d d t j |  i } d d
 | i } t	 t j
 |    d  } } d  S)Nworldz<hello>world</hello>r   %(py0)s == %(py3)sr   upy3r   assert %(py5)spy5)r   )r3   r6   )r   hellor   r%   r&   r'   r(   r)   r*   r+   r,   )r   r4   @py_assert2r-   @py_format4@py_format6r	   r	   r
   test_tag_with_text   s       j   r<   c           
   C   s
  t  j }  t  j } |  | k } | s t j d | f d |  | f  d d t j   k sf t j t   ru t j t   n d d t j |  d d t j   k s t j t   r t j t   n d d t j |   i } d d
 | i } t t j	 |    d  }  } } d  S)NisH%(py2)s
{%(py2)s = %(py0)s.hello
} is %(py6)s
{%(py6)s = %(py4)s.hello
}r   r   py6r   r   r   assert %(py8)spy8)r=   )r>   r@   )
r   r8   r%   r&   r'   r(   r)   r*   r+   r,   )r-   @py_assert5r0   @py_format7@py_format9r	   r	   r
   test_class_identity"   s    	 	      rE   c           
   C   s  t  j d d d d  }  |  j } | j } d } | | k } | s t j d | f d | | f  d t j |  d d	 t j   k s t j	 |   r t j |   n d	 d
 t j |  d t j |  i } d d | i } t
 t j |    d  } } } } |  j } | j } d } | | k } | st j d | f d | | f  d t j |  d d	 t j   k s|t j	 |   rt j |   n d	 d
 t j |  d t j |  i } d d | i } t
 t j |    d  } } } } t |   } d } | | k } | st j d | f d | | f  d d t j   k sPt j	 |  r_t j |  n d d t j |  i }	 d d |	 i }
 t
 t j |
    d  } } d  S)Nnamer8   valuer2   r   F%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.attr
}.name
} == %(py7)sr   r   r   r   py7r   assert %(py9)spy9G%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.attr
}.value
} == %(py7)sz"<some name="hello" value="world"/>%(py0)s == %(py3)sr4   r5   assert %(py5)sr7   )r   )rH   rJ   )r   )rL   rJ   )r   )rM   rN   )r   someattrrF   r%   r&   r*   r'   r(   r)   r+   r,   rG   r   )r   r-   r0   @py_assert6rB   @py_format8@py_format10r4   r9   r:   r;   r	   r	   r
   !test_tag_with_text_and_attributes%   s6    	 	       	 	          j   rT   c           
   C   s  Gd d   d t  j  }  |    } | j } | j } d } | | k } | s t j d | f d | | f  d t j |  d d t j   k s t j |  r t j |  n d d	 t j |  d
 t j |  i } d d | i } t	 t j
 |    d  } } } } t |  } d } | | k }	 |	 st j d |	 f d | | f  d d t j   k sqt j |  rt j |  n d d t j |  d d t j   k st j t  rt j t  n d d t j |  i }
 d d |
 i } t	 t j
 |    d  } }	 } d  S)Nc               @   s,   e  Z d  Z Gd d   d e j j  Z d S)z0test_tag_with_subclassed_attr_simple.<locals>.myc               @   s   e  Z d  Z d Z d S)z5test_tag_with_subclassed_attr_simple.<locals>.my.Attrr2   N)r   r   r   r8   r	   r	   r	   r
   Attr.   s   rU   N)r   r   r   r   r8   rU   r	   r	   r	   r
   my-   s   rV   r2   r   G%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.attr
}.hello
} == %(py7)sr   r   r   r   rI   r   assert %(py9)srK   z<my hello="world"/>0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   r?   r   r5   assert %(py8)srA   )r   )rW   rX   )r   )rY   rZ   )r   r8   rP   r%   r&   r*   r'   r(   r)   r+   r,   r   )rV   r   r-   r0   rQ   rB   rR   rS   r9   @py_assert4rC   rD   r	   r	   r
   $test_tag_with_subclassed_attr_simple,   s&    		 	              r\   c           
   C   s"  t  j d t d   }  t |   } d } | | k } | st j d | f d | | f  d d t j   k s~ t j |   r t j	 |   n d d t j	 |  d	 d
 t j   k s t j t  r t j	 t  n d
 d t j	 |  i } d d | i } t
 t j |    d  } } } d  S)Ndata&z<object data="&"></object>r   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   r   r?   r   r   r5   r   assert %(py8)srA   )r   )r_   r`   )r   objectr   r   r%   r&   r'   r(   r)   r*   r+   r,   )r   r9   rB   r[   rC   rD   r	   r	   r
   test_tag_with_raw_attr4   s           rb   c        	      C   s  t  j t  j    }  t |   |  d } | j } | |  k } | s t j d | f d | |  f  d t j |  d t j |  d d t j	   k s t j
 |   r t j |   n d i } d d
 | i } t t j |    d  } } } t |   } d } | | k } | st j d | f d | | f  d d t j	   k sVt j
 |  ret j |  n d d t j |  i } d d | i } t t j |    d  } } d  S)Nr   r=   .%(py3)s
{%(py3)s = %(py1)s.parent
} is %(py5)sr   r5   r7   r   r   assert %(py7)srI   z<hello><world/></hello>r   %(py0)s == %(py3)sr   r4   assert %(py5)s)r=   )rc   rd   )r   )re   rf   )r   r8   r2   r   parentr%   r&   r*   r'   r(   r)   r+   r,   )	r   @py_assert0r9   r[   r;   rR   r4   r-   r:   r	   r	   r
   test_tag_nested8   s$    

 	   y      j   ri   c              C   s   t  j t  j   g  }  t |   } d } | | k } | s t j d
 | f d | | f  d d t j   k s~ t j |  r t j	 |  n d d t j	 |  i } d d	 | i } t
 t j |    d  } } d  S)Nz<hello><world/></hello>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )rj   rk   )r   r8   r2   r   r%   r&   r'   r(   r)   r*   r+   r,   )r   r4   r9   r-   r:   r;   r	   r	   r
   test_list_nested?   s       j   rl   c              C   s   Gd d   d t  j  }  t |     } d } | | k } | s t j d | f d | | f  d d t j   k s t j |  r t j |  n d d t j |  i } d d | i } t	 t j
 |    d  } } d  S)Nc               @   s   e  Z d  Z d Z d S)ztest_tag_xmlname.<locals>.myr2   N)r   r   r   xmlnamer	   r	   r	   r
   rV   E   s   rV   z<world/>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )rn   ro   )r   r8   r   r%   r&   r'   r(   r)   r*   r+   r,   )rV   r4   r9   r-   r:   r;   r	   r	   r
   test_tag_xmlnameD   s       j   rp   c              C   s   t  j d  }  t |   } d } | | k } | s t j d | f d | | f  d d t j   k su t j |  r t j |  n d d t j |  i } d d
 | i } t	 t j
 |    d  } } d  S)Nzworld & restz<hello>world &amp; rest</hello>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )rq   rr   )r   r8   r   r%   r&   r'   r(   r)   r*   r+   r,   )r   r4   r9   r-   r:   r;   r	   r	   r
   test_tag_with_text_entityJ   s       j   rs   c           
   C   s  t  j d d  }  |  j } | j } d } | | k } | s t j d | f d | | f  d t j |  d d t j   k s t j	 |   r t j |   n d d t j |  d	 t j |  i } d d | i } t
 t j |    d  } } } } t |   } d } | | k } | st j d | f d | | f  d d t j   k sat j	 |  rpt j |  n d d t j |  i }	 d d |	 i }
 t
 t j |
    d  } } d  S)NrF   zhello & worldr   F%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.attr
}.name
} == %(py7)sr   r   r   r   rI   r   assert %(py9)srK   z <some name="hello &amp; world"/>%(py0)s == %(py3)sr4   r5   assert %(py5)sr7   )r   )rt   ru   )r   )rv   rw   )r   rO   rP   rF   r%   r&   r*   r'   r(   r)   r+   r,   r   )r   r-   r0   rQ   rB   rR   rS   r4   r9   r:   r;   r	   r	   r
   (test_tag_with_text_and_attributes_entityO   s$    	 	          j   rx   c              C   s   t  j t j j d   }  t |   } d } | | k } | s t j d | f d | | f  d d t j	   k s t j
 |  r t j |  n d d t j |  i } d d
 | i } t t j |    d  } } d  S)Nz<p>literal</p>z<some><p>literal</p></some>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )ry   rz   )r   rO   r   r#   r   r   r%   r&   r'   r(   r)   r*   r+   r,   )r   r4   r9   r-   r:   r;   r	   r	   r
   test_rawU   s       j   r{   c           
   C   s/  Gd d   d t  j  }  |  d  } t |  } d } | | k } | st j d | f d | | f  d d t j   k s t j |  r t j |  n d d	 t j |  d
 d t j   k s t j t  r t j t  n d d t j |  i } d d | i } t	 t j
 |    d  } } } d  S)Nc               @   s   e  Z d  Z d S)z%test_html_name_stickyness.<locals>.myN)r   r   r   r	   r	   r	   r
   rV   \   s   rV   r8   z<p>hello</p>r   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   r   r?   r   r   r5   r   assert %(py8)srA   )r   )r|   r}   )r   pr   r%   r&   r'   r(   r)   r*   r+   r,   )rV   r   r9   rB   r[   rC   rD   r	   r	   r
   test_html_name_stickyness[   s           r   c              C   s   Gd d   d  }  t  |  j    } d } | | k } | s t j d | f d | | f  d d t j   k s t j |  r t j |  n d d t j |  i } d d | i } t t j	 |    d  } } d  S)Nc               @   s)   e  Z d  Z Gd d   d e j  Z d S)ztest_stylenames.<locals>.myc               @   s"   e  Z d  Z e j d d  Z d S)z test_stylenames.<locals>.my.bodyZ	font_sizeZ12ptN)r   r   r   r   Stylestyler	   r	   r	   r
   bodyc   s   r   N)r   r   r   r   r   r	   r	   r	   r
   rV   b   s   rV   z%<body style="font-size: 12pt"></body>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )r   r   )
r   r   r%   r&   r'   r(   r)   r*   r+   r,   )rV   r4   r9   r-   r:   r;   r	   r	   r
   test_stylenamesa   s       j   r   c              C   s   t  j d d   }  t |   } d } | | k } | s t j d | f d | | f  d d t j   k sx t j |  r t j |  n d d t j |  i } d d
 | i } t	 t j
 |    d  } } d  S)Nclass_z<body></body>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )r   r   )r   r   r   r%   r&   r'   r(   r)   r*   r+   r,   )tr4   r9   r-   r:   r;   r	   r	   r
   test_class_Noneh   s       j   r   c                 s1  t  j d d  t  j d d  f   G  f d d   d t   }  |  j |  j d  |  j d  |  j d   } t |  } d	 } | | k } | s#t j d | f d | | f  d d t j   k s t j	 |  r t j
 |  n d d t j
 |  i } d d | i } t t j |    d  } } d  S)NZ
backgroundwhiteZgreyc                   s/   e  Z d  Z G  f d d   d e j  Z d S)z"test_alternating_style.<locals>.myc                   s.   e  Z d  Z   f d d   Z e e  Z d S)z%test_alternating_style.<locals>.my.lic                s   |  j  j |   }   | d S)N   )rg   index)r   i)alternatingr	   r
   r   t   s    z+test_alternating_style.<locals>.my.li.styleN)r   r   r   r   propertyr	   )r   r	   r
   lis   s   r   N)r   r   r   r   r   r	   )r   r	   r
   rV   r   s   rV   r8   r2   42z}<ul><li style="background: white">hello</li><li style="background: grey">world</li><li style="background: white">42</li></ul>r   %(py0)s == %(py3)sr   r4   r5   r   assert %(py5)sr7   )r   )r   r   )r   r   Zulr   r   r%   r&   r'   r(   r)   r*   r+   r,   )rV   r   r4   r9   r-   r:   r;   r	   )r   r
   test_alternating_stylem   s       j   r   c           
   C   sF  t  j t  j d d   }  t |   } d } | | k } | st j d | f d | | f  d d t j   k s t j |   r t j	 |   n d d t j	 |  d	 d
 t j   k s t j t  r t j	 t  n d
 d t j	 |  i } d d | i } t
 t j |    d  } } } t  j t  j d d   }  t |   } d } | | k } | s4t j d | f d | | f  d d t j   k st j |   rt j	 |   n d d t j	 |  d	 d
 t j   k st j t  rt j	 t  n d
 d t j	 |  i } d d | i } t
 t j |    d  } } } d  S)NZhreffooz<head><link href="foo"/></head>r   0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   hr?   r   r   r5   r   assert %(py8)srA   srcz(<head><script src="foo"></script></head>)r   )r   r   )r   )r   r   )r   headlinkr   r%   r&   r'   r(   r)   r*   r+   r,   script)r   r9   rB   r[   rC   rD   r	   r	   r
   test_singleton   s$                  r   c              C   s0  t  j t  j d  t  j d   }  |  j } d } | d |  } d } | | k } | st j d | f d | | f  d t j |  d	 t j |  d
 t j |  d d t j   k s t j	 |   r t j |   n d d t j |  i } d d | i } t
 t j |    d  } } } } } d  S)Nr   barr   indentz+<div><span>foo</span><span>bar</span></div>r   T%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.unicode
}(indent=%(py4)s)
} == %(py9)sr   rK   r?   r   r   r   r   assert %(py11)spy11)r   )r   r   )r   Zdivspanr   r%   r&   r*   r'   r(   r)   r+   r,   )r   r-   r0   rB   @py_assert8@py_assert7rS   @py_format12r	   r	   r
   test_inline   s    $	         r   c              C   s!  t  j t  j    }  |  j } d } | d |  } d } | | k } | st j d | f d | | f  d t j |  d t j |  d t j |  d	 d
 t j   k s t j |   r t j |   n d
 d t j |  i } d d | i } t	 t j
 |    d  } } } } } d  S)Nr   r   z"<object><object></object></object>r   T%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.unicode
}(indent=%(py4)s)
} == %(py9)sr   rK   r?   r   or   r   assert %(py11)sr   )r   )r   r   )r   ra   r   r%   r&   r*   r'   r(   r)   r+   r,   )r   r-   r0   rB   r   r   rS   r   r	   r	   r
   test_object_tags   s    	         r   )!builtinsr'   _pytest.assertion.rewrite	assertionrewriter%   r   Z
py._xmlgenr   r   r   r#   	Namespacer   r1   r<   rE   rT   r\   rb   ri   rl   rp   rs   rx   r{   r   r   r   r   r   r   r   r	   r	   r	   r
   <module>   s.     