HEX
Server: Apache/2.4.18 (Ubuntu)
System: Linux ubuntu 7.0.5-x86_64-linode173 #1 SMP PREEMPT_DYNAMIC Fri May 8 10:12:05 EDT 2026 x86_64
User: root (0)
PHP: 7.2.28-1+ubuntu16.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: //usr/local/bin/python37_/lib/python3.7/site-packages/cssutils/tests/test_scripts_csscombine.py
"""Testcases for cssutils.scripts.csscombine"""

from cssutils.script import csscombine
from . import basetest
import cssutils


class CSSCombine:

    C = '@namespace s2"uri";s2|sheet-1{top:1px}s2|sheet-2{top:2px}proxy{top:3px}'

    def test_combine(self):
        "scripts.csscombine()"

        # path, SHOULD be keyword argument!
        csspath = basetest.get_sheet_filename('csscombine-proxy.css')
        combined = csscombine(csspath)
        assert combined == self.C.encode()
        combined = csscombine(path=csspath, targetencoding='ascii')
        assert combined == ('@charset "ascii";' + self.C).encode()

        # url
        cssurl = cssutils.helper.path2url(csspath)
        combined = csscombine(url=cssurl)
        assert combined == self.C.encode()
        combined = csscombine(url=cssurl, targetencoding='ascii')
        assert combined == ('@charset "ascii";' + self.C).encode()

        # cssText
        # TODO: really need binary or can handle str too?
        f = open(csspath, mode="rb")
        cssText = f.read()
        f.close()
        combined = csscombine(cssText=cssText, href=cssurl)
        assert combined == self.C.encode()
        combined = csscombine(cssText=cssText, href=cssurl, targetencoding='ascii')
        assert combined == ('@charset "ascii";' + self.C).encode()

    def test_combine_resolveVariables(self):
        "scripts.csscombine(minify=..., resolveVariables=...)"
        # no actual imports but checking if minify and resolveVariables work
        cssText = '''
        @variables {
            c: #0f0;
        }
        a {
            color: var(c);
        }
        '''
        # default minify
        assert (
            csscombine(cssText=cssText, resolveVariables=False)
            == b'@variables{c:#0f0}a{color:var(c)}'
        )
        assert csscombine(cssText=cssText) == b'a{color:#0f0}'

        # no minify
        assert (
            csscombine(cssText=cssText, minify=False, resolveVariables=False)
            == b'@variables {\n    c: #0f0\n    }\na {\n    color: var(c)\n    }'
        )
        assert (
            csscombine(cssText=cssText, minify=False) == b'a {\n    color: #0f0\n    }'
        )