
    _f                        d dl Z d dlZ	 d dlZn# e$ r dZY nw xY w	 d dlZn# e$ r dZY nw xY wd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ  G d d          Z ej        edu d           G d	 d
ee                      Z ej        edu d           G d dee                      Z G d dee          Z G d dee          ZdS )    N)override_settings)SOURCE_HUNKSOURCE_FILE)settings)CompressorTestCasec                   $     e Zd Z fdZd Z xZS )ParserTestCasec                     |                      | j                  | _        | j                                         t	                                                       d S )N)COMPRESS_PARSER)r   
parser_clsr   	__enter__supersetUp)self	__class__s    O/var/www/html/env/lib/python3.11/site-packages/compressor/tests/test_parsers.pyr   zParserTestCase.setUp   sE    !%t!O!O((***    c                 >    | j                             d d d            d S N)r   __exit__r   s    r   tearDownzParserTestCase.tearDown   s#    ''dD99999r   )__name__
__module____qualname__r   r   __classcell__)r   s   @r   r	   r	      sG            
: : : : : : :r   r	   zlxml not foundc                       e Zd ZdZdS )LxmlParserTestszcompressor.parser.LxmlParserNr   r   r   r    r   r   r   r      s        /JJJr   r   zhtml5lib not foundc                   t    e Zd ZdZd Zd Z ed          d             Z edd          d	             Zd
S )Html5LibParserTestsz compressor.parser.Html5LibParserc                     | j                                         }t          t          j                            t          j        dd          ddddddf}|                     ||d	         d d
         |d	         d
         j	        |d	         d
         j
        fz              t          dd df}|                     ||d         d d
         | j         j                            |d         d
                   fz              t          t          j                            t          j        dd          ddddddf}|                     ||d         d d
         |d         d
         j	        |d         d
         j
        fz              d S )Ncssone.csscss/one.cssz"{http://www.w3.org/1999/xhtml}link
stylesheetz/static/css/one.cssztext/css)relhreftyper      p { border:5px solid green;};<style type="text/css">p { border:5px solid green;}</style>   two.css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out2s        r   test_css_splitz"Html5LibParserTests.test_css_split*   sp   ,,..GLL/	BB0 *?TT
 	uQx|uQx{a@R.SSTTT*I	
 	%(2A2,$-"6"?"?a"L"L!NN	
 	
 	
 GLL/	BB0 *?TT
 	uQx|uQx{a@R.SSTTTTTr   c                 <   | j                                         }t          t          j                            t          j        dd          dddddd f}|                     ||d         d d	         |d         d	         j	        |d         d	         j
        |d         d	         j        fz              t          d
d dddid
f}|                     ||d         d d	         |d         d	         j	        |d         d	         j
        |d         d	         j        fz              d S )Njszone.jsz	js/one.jsz${http://www.w3.org/1999/xhtml}scriptz/static/js/one.jsztext/javascript)srcr*   r   r+   zobj.value = "value";r*   r.   )js_noder4   r   r5   r6   r7   r   r8   r9   r:   r;   textr   )r   r?   r@   rA   s       r   test_js_splitz!Html5LibParserTests.test_js_splitF   s'   ++--GLL/x@@2'1BCC
 	%(2A2,%(1+/58A;3EuQxPQ{GW!XX	
 	
 	
 "2&'"
 	%(2A2,%(1+/58A;3EuQxPQ{GW!XX	
 	
 	
 	
 	
r   FCOMPRESS_ENABLEDc                     |                      t          | j                  t          | j                                                             d S r   r9   lenr$   r3   outputr   s    r   test_css_return_if_offz*Html5LibParserTests.test_css_return_if_off_   s>     	TXDM,@,@,B,B(C(CDDDDDr   r    )COMPRESS_PRECOMPILERSrK   c                     |                      t          | j                  t          | j                                                             d S r   )r9   rN   rE   rG   rO   r   s    r   test_js_return_if_offz)Html5LibParserTests.test_js_return_if_offh   s>     	TWs4<+>+>+@+@'A'ABBBBBr   N)	r   r   r   r   rC   rI   r   rP   rS   r    r   r   r"   r"   $   s        3JU U U8
 
 
2 ...E E /.E R%HHHC C IHC C Cr   r"   c                   B    e Zd ZdZd Z ed          d             ZdS )BeautifulSoupParserTestsz%compressor.parser.BeautifulSoupParserc                    | j                                         }t          t          j                            t          j        dd          dd d f}|                     ||d         d d         |d         d         j	        |d         d         j
        fz              t          dd df}|                     ||d         d d         | j         j                            |d         d                   fz              t          t          j                            t          j        dd	          d
d d f}|                     ||d         d d         |d         d         j	        |d         d         j
        fz              d S )Nr$   r%   r&   r   r+   r,   r-   r.   r/   r0   r1   r2   r>   s        r   rC   z'BeautifulSoupParserTests.test_css_splits   sZ   ,,..GLL/	BB
 	uQx|uQx{a@R.SSTTT*I	
 	%(2A2,$-"6"?"?a"L"L!NN	
 	
 	
 GLL/	BB
 	uQx|uQx{a@R.SSTTTTTr   FrJ   c                     |                      t          | j                  t          | j                                                             d S r   rM   r   s    r   rP   z/BeautifulSoupParserTests.test_css_return_if_off   s<    TXDM,@,@,B,B(C(CDDDDDr   N)r   r   r   r   rC   r   rP   r    r   r   rU   rU   n   sZ        8JU U U8 ...E E /.E E Er   rU   c                       e Zd ZdZdS )HtmlParserTestszcompressor.parser.HtmlParserNr   r    r   r   rY   rY      s        /JJJr   rY   )r5   unittestlxmlImportErrorhtml5libdjango.test.utilsr   compressor.baser   r   compressor.confr   compressor.tests.test_baser   r	   skipIfr   r"   rU   rY   r    r   r   <module>rc      s   				 KKKK   DDDOOOO   HHH 0 / / / / / 4 4 4 4 4 4 4 4 $ $ $ $ $ $ 9 9 9 9 9 9: : : : : : : : /000 0 0 0 0n&8 0 0 100 T!#788FC FC FC FC FC.*< FC FC 98FCR#E #E #E #E #E~/A #E #E #EL0 0 0 0 0n&8 0 0 0 0 0s    " ,,