def test_compile_source(): compiler = SCSS(executable="scss") assert (fix_line_breaks( compiler.compile_source("p {font-size: 15px; a {color: red;}}")) == "p {\n font-size: 15px; }\n p a {\n color: red; }\n") compiler = SCSS(executable="sass") assert (fix_line_breaks( compiler.compile_source("p {font-size: 15px; a {color: red;}}")) == "p {\n font-size: 15px; }\n p a {\n color: red; }\n") with pytest.raises(StaticCompilationError): compiler.compile_source('invalid syntax') with pytest.raises(StaticCompilationError): compiler.compile_source('invalid syntax') # Test non-ascii NON_ASCII = """@charset "UTF-8"; .external_link:first-child:before { content: "Zobacz także:"; background: url(картинка.png); } """ assert fix_line_breaks(compiler.compile_source(NON_ASCII)) == NON_ASCII compiler = SASS(executable="sass") assert (fix_line_breaks( compiler.compile_source("p\n font-size: 15px\n a\n color: red")) == "p {\n font-size: 15px; }\n p a {\n color: red; }\n") compiler = SASS(executable="scss") assert (fix_line_breaks( compiler.compile_source("p\n font-size: 15px\n a\n color: red")) == "p {\n font-size: 15px; }\n p a {\n color: red; }\n")
def test_compile_file(self): compiler = SASS() self.assertEqual( fix_line_breaks(compiler.compile_file("styles/test.sass")), "p {\n font-size: 15px; }\n p a {\n color: red; }\n" )
def test_get_output_filename(self): compiler = SASS() self.assertEqual(compiler.get_output_filename("dummy.sass"), "dummy.css") self.assertEqual( compiler.get_output_filename("dummy.sass.sass"), "dummy.sass.css" )
def test_compile_source(self): compiler = SASS() self.assertEqual( fix_line_breaks(compiler.compile_source("p\n font-size: 15px")), "p {\n font-size: 15px; }\n") self.assertRaises(StaticCompilationError, lambda: compiler.compile_source('invalid syntax'))
def test_compile_source(self): compiler = SASS() self.assertEqual( fix_line_breaks(compiler.compile_source("p\n font-size: 15px")), "p {\n font-size: 15px; }\n" ) self.assertRaises( StaticCompilationError, lambda: compiler.compile_source('invalid syntax') )
def test_find_imports(self): compiler = SASS() source = """@import foo.sass @import "foo.css" @import foo screen @import "http://foo.com/bar" @import url(foo) @import "rounded-corners", text-shadow @import "foo,bar", url(bar,baz), 'bar,foo',bar screen, projection""" expected = [ "bar", "bar,foo", "foo", "foo,bar", "foo.sass", "rounded-corners", "text-shadow", ] self.assertEqual(compiler.find_imports(source), expected)
def test_find_imports(self): compiler = SASS() source = """ @import foo.sass @import "foo" @import "foo.css" @import foo screen @import "http://foo.com/bar" @import url(foo) @import "rounded-corners", text-shadow """ expected = [ "foo", "foo.sass", "rounded-corners", "text-shadow", ] self.assertEqual( compiler.find_imports(source), expected )
from django.template.base import Library from static_precompiler.compilers import SASS from static_precompiler.templatetags.base import BaseInlineNode register = Library() compiler = SASS() class InlineSASSNode(BaseInlineNode): compiler = compiler #noinspection PyUnusedLocal @register.tag(name="inlinesass") def do_inlinecoffeescript(parser, token): nodelist = parser.parse(("endinlinesass", )) parser.delete_first_token() return InlineSASSNode(nodelist) @register.simple_tag def sass(path): return compiler.compile(path)
def test_is_supported(self): compiler = SASS() self.assertEqual(compiler.is_supported("dummy"), False) self.assertEqual(compiler.is_supported("dummy.sass"), True)