Ejemplo n.º 1
0
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"
     )
Ejemplo n.º 4
0
    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')
        )
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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
        )
Ejemplo n.º 8
0
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)