def test_postprocesss(monkeypatch):
    compiler = Stylus()
    convert_urls = call_recorder(lambda *args: "spam")
    monkeypatch.setattr("static_precompiler.compilers.stylus.convert_urls",
                        convert_urls)
    assert compiler.postprocess("ham", "eggs") == "spam"
    assert convert_urls.calls == [call("ham", "eggs")]
def test_compile_file():
    compiler = Stylus()

    assert fix_line_breaks(compiler.compile_file("styles/stylus/A.styl")) == "p {\n  color: #f00;\n}\n"

    with pytest.raises(StaticCompilationError):
        assert compiler.compile_file("styles/stylus/broken1.styl")
def test_compile_source():
    compiler = Stylus()

    assert fix_line_breaks(compiler.compile_source("p\n  color: red;")) == "p {\n  color: #f00;\n}\n\n"

    with pytest.raises(StaticCompilationError):
        assert compiler.compile_source("broken")
def test_compile_file():
    compiler = Stylus()

    assert fix_line_breaks(compiler.compile_file(
        "styles/stylus/A.styl")) == "p {\n  color: #f00;\n}\n"

    with pytest.raises(StaticCompilationError):
        assert compiler.compile_file("styles/stylus/broken1.styl")
def test_compile_source():
    compiler = Stylus()

    assert fix_line_breaks(compiler.compile_source(
        "p\n  color: red;")) == "p {\n  color: #f00;\n}\n\n"

    with pytest.raises(StaticCompilationError):
        assert compiler.compile_source("broken")
def test_locate_imported_file(monkeypatch):
    compiler = Stylus()

    root = os.path.dirname(__file__)

    existing_files = set()
    for f in ("A/B.styl", "C.styl"):
        existing_files.add(os.path.join(root, "static", normalize_path(f)))

    monkeypatch.setattr("os.path.exists", lambda x: x in existing_files)

    assert compiler.locate_imported_file("A", "B.styl") == "A/B.styl"
    assert compiler.locate_imported_file("", "C.styl") == "C.styl"

    with pytest.raises(StaticCompilationError):
        compiler.locate_imported_file("", "Z.styl")
def test_find_dependencies():

    compiler = Stylus()

    assert compiler.find_dependencies("styles/stylus/A.styl") == [
        "styles/stylus/B/C.styl",
        "styles/stylus/D.styl",
        "styles/stylus/E/F.styl",
        "styles/stylus/E/index.styl",
    ]

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken1.styl")

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken2.styl")

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken3.styl")
def test_find_imports():
    source = """
@import " "
@import "foo.styl"
@import 'foo'
@import "foo.css"
@import "http://foo.com/bar"
@import "https://foo.com/bar"
@import url(foo)
@import url(http://fonts.googleapis.com/css?family=Arvo:400,700,400italic,700italic)
@import url("http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,700,600,300")
@require "foo.styl"
@require "foo/*"
"""

    expected = [
        "foo",
        "foo.styl",
        "foo/*",
    ]

    compiler = Stylus()
    assert compiler.find_imports(source) == expected
def test_find_imports():
    source = """
@import " "
@import "foo.styl"
@import 'foo'
@import "foo.css"
@import "http://foo.com/bar"
@import "https://foo.com/bar"
@import url(foo)
@import url(http://fonts.googleapis.com/css?family=Arvo:400,700,400italic,700italic)
@import url("http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,700,600,300")
@require "foo.styl"
@require "foo/*"
"""

    expected = [
        "foo",
        "foo.styl",
        "foo/*",
    ]

    compiler = Stylus()
    assert compiler.find_imports(source) == expected
def test_find_dependencies():

    compiler = Stylus()

    assert compiler.find_dependencies("styles/stylus/A.styl") == [
        "styles/stylus/B/C.styl",
        "styles/stylus/D.styl",
        "styles/stylus/E/F.styl",
        "styles/stylus/E/index.styl",
    ]

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken1.styl")

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken2.styl")

    with pytest.raises(StaticCompilationError):
        compiler.find_dependencies("styles/stylus/broken3.styl")
예제 #11
0
def test_locate_imported_file(monkeypatch):
    compiler = Stylus()

    root = os.path.dirname(__file__)

    existing_files = set()
    for f in ("A/B.styl", "C.styl"):
        existing_files.add(os.path.join(root, "static", normalize_path(f)))

    monkeypatch.setattr("os.path.exists", lambda x: x in existing_files)

    assert compiler.locate_imported_file("A", "B.styl") == "A/B.styl"
    assert compiler.locate_imported_file("", "C.styl") == "C.styl"

    with pytest.raises(StaticCompilationError):
        compiler.locate_imported_file("", "Z.styl")
def test_postprocesss(monkeypatch):
    compiler = Stylus()
    convert_urls = call_recorder(lambda *args: "spam")
    monkeypatch.setattr("static_precompiler.compilers.stylus.convert_urls", convert_urls)
    assert compiler.postprocess("ham", "eggs") == "spam"
    assert convert_urls.calls == [call("ham", "eggs")]