64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
|
|
"""Testcases for cssutils.scripts.csscombine"""
|
||
|
|
|
||
|
|
from cssutils.script import csscombine
|
||
|
|
from . import basetest
|
||
|
|
import cssutils
|
||
|
|
|
||
|
|
|
||
|
|
class TestCSSCombine:
|
||
|
|
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 }'
|
||
|
|
)
|