o
    a"<fb                     @   sD   d dl mZ d dlmZ d dlmZ d dlmZ G dd deZdS )    )TestCase)override_settings)settings)css_tagc                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	e
dd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 )'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                 C   s*   |  | | d| | f  d S )Nz%r != %r)assertEqualstrip)selfresultexpected r   V/var/www/html/kck/venv/lib/python3.10/site-packages/compressor/tests/test_jinja2ext.pyassertStrippedEqual   s   z1TestJinja2CompressorExtension.assertStrippedEqualc                 C   s0   dd l }|| _ ddlm} | j j|gd| _d S )Nr   )CompressorExtension)
extensions)jinja2compressor.contrib.jinja2extr   Environmentenv)r	   r   r   r   r   r   setUp   s   z#TestJinja2CompressorExtension.setUpc                 C      |  | jjj| jjd d S )Nz%{% compress %}Foobar{% endcompress %}assertRaisesr   
exceptionsTemplateSyntaxErrorr   from_stringr	   r   r   r   'test_error_raised_if_no_arguments_given      zETestJinja2CompressorExtension.test_error_raised_if_no_arguments_givenc                 C   r   )Nz){% compress foo %}Foobar{% endcompress %}r   r   r   r   r   %test_error_raised_if_wrong_kind_given   r   zCTestJinja2CompressorExtension.test_error_raised_if_wrong_kind_givenc                 C   r   )Nz,{% compress js %}Foobar{% endcompress css %}r   r   r   r   r   -test_error_raised_if_wrong_closing_kind_given#   r   zKTestJinja2CompressorExtension.test_error_raised_if_wrong_closing_kind_givenc                 C   r   )Nz-{% compress css foo %}Foobar{% endcompress %}r   r   r   r   r   %test_error_raised_if_wrong_mode_given'   r   zCTestJinja2CompressorExtension.test_error_raised_if_wrong_mode_givenFCOMPRESS_ENABLEDc                 C   sb   d g d}d| d }| j|}| ||  d| d }| 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templater   r   r   test_compress_is_disabled+   s   z7TestJinja2CompressorExtension.test_compress_is_disabledc                 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	   r)   contextr   r   r   test_empty_tag;   s   
z,TestJinja2CompressorExtension.test_empty_tagc                 C   r+   )NzJ{% compress js %}{% block js %}
        {% endblock %}{% endcompress js %}r,   r-   r.   r0   r   r   r   test_empty_tag_with_kind@   s   
z6TestJinja2CompressorExtension.test_empty_tag_with_kindc                 C   4   | 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 %}r,   z)/static/CACHE/css/output.600674ea1d3d.cssr   r   r   r/   r   r   r&   r	   r)   r1   outr   r   r   test_css_tagF   s   
z*TestJinja2CompressorExtension.test_css_tagc                 C   r4   )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 %}r,   z)/static/CACHE/css/output.d5444a1ab4a3.cssr5   r6   r   r   r   test_nonascii_css_tagP   s   
z3TestJinja2CompressorExtension.test_nonascii_css_tagc                 C   0   | 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 %}r,   z?<script src="/static/CACHE/js/output.8a0fed36c317.js"></script>r.   r6   r   r   r   test_js_tagY      
z)TestJinja2CompressorExtension.test_js_tagc                 C   r:   )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 %}r,   z?<script src="/static/CACHE/js/output.8c00f1cf1e0a.js"></script>r.   r6   r   r   r   test_nonascii_js_tagb   r<   z2TestJinja2CompressorExtension.test_nonascii_js_tagc                 C   r:   )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 %}r,   z?<script src="/static/CACHE/js/output.06a98ccfd380.js"></script>r.   r6   r   r   r   test_nonascii_latin1_js_tagk   r<   z9TestJinja2CompressorExtension.test_nonascii_latin1_js_tagc                 C   r:   )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 %}r,   zM<style type="text/css">body{background:#990}p{border:5px solid green}</style>r.   r6   r   r   r   test_css_inlinet   s
   
z-TestJinja2CompressorExtension.test_css_inlinec                 C   r:   )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 %}r,   z,<script>obj={};;obj.value="value";;</script>r.   r6   r   r   r   test_js_inline   r<   z,TestJinja2CompressorExtension.test_js_inlinec                 C   s\   | j dd | jd}W d    n1 s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">r,   )r   r   r   r/   r   r&   )r	   r)   r7   r1   r   r   r   test_nonascii_inline_css   s   
z6TestJinja2CompressorExtension.test_nonascii_inline_cssN)__name__
__module____qualname____doc__r   r   r   r   r    r!   r   r*   r2   r3   r8   r9   r;   r=   r>   r?   r@   rA   r   r   r   r   r      s(    

					r   N)	django.testr   django.test.utilsr   compressor.confr   compressor.tests.test_baser   r   r   r   r   r   <module>   s
    