î
2!ìVs  ã               @   sr  d  d l  m Z d  d l Z d  d l Z y d  d l Z Wn e k
 rR d Z Yn Xy d  d l Z Wn e k
 r} d Z Yn Xd  d l m Z d  d l	 m
 Z
 m Z d  d l m Z d  d l m Z Gd d „  d e ƒ Z e j e d k d	 ƒ Gd
 d „  d e e ƒ ƒ Z e j e d k d ƒ Gd d „  d e e ƒ ƒ Z Gd d „  d e e ƒ Z Gd d „  d e e ƒ Z d S)é    )Úwith_statementN)Úoverride_settings)ÚSOURCE_HUNKÚSOURCE_FILE)Úsettings)ÚCompressorTestCasec                   s.   e  Z d  Z ‡  f d d †  Z d d „  Z ‡  S)ÚParserTestCasec                s<   |  j  d |  j ƒ |  _ |  j j ƒ  t t |  ƒ j ƒ  d  S)NZCOMPRESS_PARSER)r   Ú
parser_clsr   Ú	__enter__Úsuperr   ÚsetUp)Úself)Ú	__class__© úJ/tmp/pip-build-0sboevxh/django-compressor/compressor/tests/test_parsers.pyr      s    zParserTestCase.setUpc             C   s   |  j  j d  d  d  ƒ d  S)N)r   Ú__exit__)r   r   r   r   ÚtearDown   s    zParserTestCase.tearDown)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   )r   r   r      s   r   zlxml not foundc               @   s   e  Z d  Z d Z d S)ÚLxmlParserTestszcompressor.parser.LxmlParserN)r   r   r   r	   r   r   r   r   r       s   r   zhtml5lib not foundc               @   sj   e  Z d  Z d Z d d „  Z d d „  Z e d d ƒ d d	 „  ƒ Z e d
 f  d d ƒ d d „  ƒ Z d S)ÚHtml5LibParserTestsz compressor.parser.Html5LibParserc             C   s[  |  j  j ƒ  } t t j j t j d d ƒ d d i d d 6d d 6d	 d
 6f } |  j | | d d  d … | d d j	 | d d j
 f ƒ t d d  d f } |  j | | d d  d … |  j  j j | d d ƒ f ƒ t t j j t j d d ƒ d d i d d 6d d 6d	 d
 6f } |  j | | d d  d … | d d j	 | d d j
 f ƒ d  S)NÚcsszone.csszcss/one.cssz"{http://www.w3.org/1999/xhtml}linkZ
stylesheetÚrelz/static/css/one.cssÚhrefztext/cssÚtyper   é   zp { border:5px solid green;}z;<style type="text/css">p { border:5px solid green;}</style>é   ztwo.csszcss/two.cssz/static/css/two.cssé   )Úcss_nodeÚsplit_contentsr   ÚosÚpathÚjoinr   ÚCOMPRESS_ROOTÚassertEqualÚtagÚattribr   ÚparserÚelem_str)r   ÚsplitÚout0Úout1Úout2r   r   r   Útest_css_split+   s.    (	"(z"Html5LibParserTests.test_css_splitc             C   s  |  j  j ƒ  } t t j j t j d d ƒ d d i d d 6d d 6d  f } |  j | | d	 d  d
 … | d	 d
 j	 | d	 d
 j
 | d	 d
 j f ƒ t d d  d i d d 6d f } |  j | | d d  d
 … | d d
 j	 | d d
 j
 | d d
 j f ƒ d  S)NÚjszone.jsz	js/one.jsz${http://www.w3.org/1999/xhtml}scriptz/static/js/one.jsÚsrcztext/javascriptr   r   r   zobj.value = "value";r   )Újs_noder    r   r!   r"   r#   r   r$   r%   r&   r'   Útextr   )r   r*   r+   r,   r   r   r   Útest_js_splitJ   s&    	(
	(z!Html5LibParserTests.test_js_splitÚCOMPRESS_ENABLEDFc             C   s,   |  j  t |  j ƒ t |  j j ƒ  ƒ ƒ d  S)N)r%   Úlenr   r   Úoutput)r   r   r   r   Útest_css_return_if_offc   s    z*Html5LibParserTests.test_css_return_if_offZCOMPRESS_PRECOMPILERSc             C   s,   |  j  t |  j ƒ t |  j j ƒ  ƒ ƒ d  S)N)r%   r5   r/   r1   r6   )r   r   r   r   Útest_js_return_if_offl   s    z)Html5LibParserTests.test_js_return_if_offN)	r   r   r   r	   r.   r3   r   r7   r8   r   r   r   r   r   %   s
   	r   c               @   s=   e  Z d  Z d Z d d „  Z e d d ƒ d d „  ƒ Z d S)	ÚBeautifulSoupParserTestsz%compressor.parser.BeautifulSoupParserc             C   s1  |  j  j ƒ  } t t j j t j d d ƒ d d  d  f } |  j | | d d  d … | d d j	 | d d j
 f ƒ t d d  d f } |  j | | d d  d … |  j  j j | d d ƒ f ƒ t t j j t j d d	 ƒ d
 d  d  f } |  j | | d d  d … | d d j	 | d d j
 f ƒ d  S)Nr   zone.csszcss/one.cssr   r   zp { border:5px solid green;}z;<style type="text/css">p { border:5px solid green;}</style>r   ztwo.csszcss/two.cssr   )r   r    r   r!   r"   r#   r   r$   r%   r&   r'   r   r(   r)   )r   r*   r+   r,   r-   r   r   r   r.   w   s*    	(	"	(z'BeautifulSoupParserTests.test_css_splitr4   Fc             C   s>   |  j  j ƒ  j d d ƒ } |  j t |  j ƒ t | ƒ ƒ d  S)Nz"/>z" />)r   r6   Úreplacer%   r5   r   )r   Zfixed_outputr   r   r   r7   ”   s    z/BeautifulSoupParserTests.test_css_return_if_offN)r   r   r   r	   r.   r   r7   r   r   r   r   r9   r   s   r9   c               @   s   e  Z d  Z d Z d S)ÚHtmlParserTestszcompressor.parser.HtmlParserN)r   r   r   r	   r   r   r   r   r;   œ   s   r;   )Ú
__future__r   r!   ZunittestÚlxmlÚImportErrorÚhtml5libZdjango.test.utilsr   Zcompressor.baser   r   Zcompressor.confr   Zcompressor.tests.test_baser   Úobjectr   ZskipIfr   r   r9   r;   r   r   r   r   Ú<module>   s*   
""L*