
    _f                     R    d dl mZ d dlmZ d dlmZ d dlmZ  G d de          ZdS )    )TestCase)override_settings)settings)css_tagc                       e Zd ZdZd Zd Zd Zd Zd Zd Z	 e
d	          d
             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestJinja2CompressorExtensiona  
    Test case for jinja2 extension.

    .. note::
       At tests we need to make some extra care about whitespace. Please note
       that we use jinja2 specific controls (*minus* character at block's
       beginning or end). For more information see jinja2 documentation.
    c                     |                      |                                |                                |                                d|                                           d S )Nz != )assertEqualstrip)selfresultexpecteds      Q/var/www/html/env/lib/python3.11/site-packages/compressor/tests/test_jinja2ext.pyassertStrippedEqualz1TestJinja2CompressorExtension.assertStrippedEqual   s]    LLNNNN ,,....(..*:*:*:;	
 	
 	
 	
 	
    c                 j    dd l }|| _         ddlm} | j                             |g          | _        d S )Nr   )CompressorExtension)
extensions)jinja2compressor.contrib.jinja2extr   Environmentenv)r   r   r   s      r   setUpz#TestJinja2CompressorExtension.setUp   sF    DDDDDD;**7J6K*LLr   c                 f    |                      | j        j        j        | j        j        d           d S )Nz%{% compress %}Foobar{% endcompress %}assertRaisesr   
exceptionsTemplateSyntaxErrorr   from_stringr   s    r   'test_error_raised_if_no_arguments_givenzETestJinja2CompressorExtension.test_error_raised_if_no_arguments_given!   s:    K"6H 3	
 	
 	
 	
 	
r   c                 f    |                      | j        j        j        | j        j        d           d S )Nz){% compress foo %}Foobar{% endcompress %}r   r    s    r   %test_error_raised_if_wrong_kind_givenzCTestJinja2CompressorExtension.test_error_raised_if_wrong_kind_given(   s:    K"6H 7	
 	
 	
 	
 	
r   c                 f    |                      | j        j        j        | j        j        d           d S )Nz,{% compress js %}Foobar{% endcompress css %}r   r    s    r   -test_error_raised_if_wrong_closing_kind_givenzKTestJinja2CompressorExtension.test_error_raised_if_wrong_closing_kind_given/   s:    K"6H :	
 	
 	
 	
 	
r   c                 f    |                      | j        j        j        | j        j        d           d S )Nz-{% compress css foo %}Foobar{% endcompress %}r   r    s    r   %test_error_raised_if_wrong_mode_givenzCTestJinja2CompressorExtension.test_error_raised_if_wrong_mode_given6   s:    K"6H ;	
 	
 	
 	
 	
r   FCOMPRESS_ENABLEDc                 \   d                     g d          }d|z   dz   }| j                            |          }|                     ||                                           d|z   dz   }| j                            |          }|                     ||                                           d S )N
)zJ<link rel="stylesheet" href="css/one.css" type="text/css" charset="utf-8">z;<style type="text/css">p { border:5px solid green;}</style>zJ<link rel="stylesheet" href="css/two.css" type="text/css" charset="utf-8">z{% compress css %}z{% endcompress %}z{% endcompress css %})joinr   r   r
   render)r   tag_bodytemplate_stringtemplates       r   test_compress_is_disabledz7TestJinja2CompressorExtension.test_compress_is_disabled=   s    99  
 
 /9<OO8''888??#4#4555 /9<SS8''888??#4#455555r   c                     | j                             d          }dt          j        i}|                     d|                    |                     d S )Nz>{% compress js %}{% block js %}{% endblock %}{% endcompress %}
STATIC_URL r   r   r   COMPRESS_URLr
   r-   r   r0   contexts      r   test_empty_tagz,TestJinja2CompressorExtension.test_empty_tagO   sS    8''P
 
  !67X__W5566666r   c                     | j                             d          }dt          j        i}|                     d|                    |                     d S )NzJ{% compress js %}{% block js %}
        {% endblock %}{% endcompress js %}r3   r4   r5   r7   s      r   test_empty_tag_with_kindz6TestJinja2CompressorExtension.test_empty_tag_with_kindV   sU    8''.
 
  !67X__W5566666r   c                     | j                             d          }dt          j        i}t	          d          }|                     ||                    |                     d S )Na7  {% compress css -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        <link rel="stylesheet" href="{{ STATIC_URL }}css/two.css" type="text/css" charset="utf-8">
        {% endcompress %}r3   z)/static/CACHE/css/output.600674ea1d3d.cssr   r   r   r6   r   r
   r-   r   r0   r8   outs       r   test_css_tagz*TestJinja2CompressorExtension.test_css_tag^   sc    8''
 
  !67ABBhoog6677777r   c                     | j                             d          }dt          j        i}t	          d          }|                     ||                    |                     d S )Nz{% compress css -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/nonasc.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        {% endcompress %}r3   z)/static/CACHE/css/output.d5444a1ab4a3.cssr=   r>   s       r   test_nonascii_css_tagz3TestJinja2CompressorExtension.test_nonascii_css_tagj   sc    8''
 
  !67ABBhoog6677777r   c                     | j                             d          }dt          j        i}d}|                     ||                    |                     d S )Nz{% compress js -%}
        <script src="{{ STATIC_URL }}js/one.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
        {% endcompress %}r3   z?<script src="/static/CACHE/js/output.8a0fed36c317.js"></script>r5   r>   s       r   test_js_tagz)TestJinja2CompressorExtension.test_js_tagu   Z    8''
 
  !67Ohoog6677777r   c                     | j                             d          }dt          j        i}d}|                     ||                    |                     d S )Nu   {% compress js -%}
        <script src="{{ STATIC_URL }}js/nonasc.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">var test_value = "—";</script>
        {% endcompress %}r3   z?<script src="/static/CACHE/js/output.8c00f1cf1e0a.js"></script>r5   r>   s       r   test_nonascii_js_tagz2TestJinja2CompressorExtension.test_nonascii_js_tag   rE   r   c                     | j                             d          }dt          j        i}d}|                     ||                    |                     d S )Nu   {% compress js -%}
        <script src="{{ STATIC_URL }}js/nonasc-latin1.js" type="text/javascript" charset="latin-1"></script>
        <script type="text/javascript">var test_value = "—";</script>
        {% endcompress %}r3   z?<script src="/static/CACHE/js/output.06a98ccfd380.js"></script>r5   r>   s       r   test_nonascii_latin1_js_tagz9TestJinja2CompressorExtension.test_nonascii_latin1_js_tag   rE   r   c                     | j                             d          }dt          j        i}d}|                     ||                    |                     d S )Nz{% compress css, inline -%}
        <link rel="stylesheet" href="{{ STATIC_URL }}css/one.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        {% endcompress %}r3   zM<style type="text/css">body{background:#990}p{border:5px solid green}</style>r5   r>   s       r   test_css_inlinez-TestJinja2CompressorExtension.test_css_inline   sa    8''
 
  !670 	 	hoog6677777r   c                     | j                             d          }dt          j        i}d}|                     ||                    |                     d S )Nz{% compress js, inline -%}
        <script src="{{ STATIC_URL }}js/one.js" type="text/css" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
        {% endcompress %}r3   z,<script>obj={};;obj.value="value";;</script>r5   r>   s       r   test_js_inlinez,TestJinja2CompressorExtension.test_js_inline   sZ    8''
 
  !67<hoog6677777r   c                    |                      d          5  | j                            d          }d d d            n# 1 swxY w Y   d}dt           j        i}|                     ||                    |                     d S )NFr(   ua   {% compress css %}<style type="text/css">/* русский текст */</style>{% endcompress %}zX<link rel="stylesheet" href="/static/CACHE/css/output.e3b0c44298fc.css" type="text/css">r3   )r   r   r   r6   r
   r-   )r   r0   r?   r8   s       r   test_nonascii_inline_cssz6TestJinja2CompressorExtension.test_nonascii_inline_css   s    ]]E]22 	 	x++, H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 i!67hoog6677777s   >AAN)__name__
__module____qualname____doc__r   r   r!   r#   r%   r'   r   r1   r9   r;   r@   rB   rD   rG   rI   rK   rM   rO    r   r   r   r      s;        
 
 
M M M
 
 

 
 

 
 

 
 
 ...6 6 /.6"7 7 77 7 7
8 
8 
8	8 	8 	8	8 	8 	8	8 	8 	8	8 	8 	88 8 8	8 	8 	8
8 
8 
8 
8 
8r   r   N)	django.testr   django.test.utilsr   compressor.confr   compressor.tests.test_baser   r   rT   r   r   <module>rY      s                / / / / / / $ $ $ $ $ $ . . . . . .q8 q8 q8 q8 q8H q8 q8 q8 q8 q8r   