Exemplo n.º 1
0
    def test_compile(self):
        compiler = BaseCompiler()
        compiler.is_supported = MagicMock()
        compiler.should_compile = MagicMock()
        compiler.compile_file = MagicMock(return_value="compiled")
        compiler.write_output = MagicMock()
        compiler.get_output_path = MagicMock(return_value="dummy.js")
        compiler.postprocess = MagicMock(
            side_effect=lambda compiled, source_path: compiled
        )
        compiler.update_dependencies = MagicMock()
        compiler.find_dependencies = MagicMock(return_value=["A", "B"])

        compiler.is_supported.return_value = False
        self.assertRaises(ValueError, lambda: compiler.compile("dummy.coffee"))

        self.assertEqual(compiler.compile_file.call_count, 0)
        self.assertEqual(compiler.postprocess.call_count, 0)
        self.assertEqual(compiler.write_output.call_count, 0)

        compiler.is_supported.return_value = True
        compiler.should_compile.return_value = False
        self.assertEqual(compiler.compile("dummy.coffee"), "dummy.js")

        self.assertEqual(compiler.compile_file.call_count, 0)
        self.assertEqual(compiler.postprocess.call_count, 0)
        self.assertEqual(compiler.write_output.call_count, 0)

        compiler.should_compile.return_value = True
        self.assertEqual(compiler.compile("dummy.coffee"), "dummy.js")

        self.assertEqual(compiler.compile_file.call_count, 1)
        compiler.compile_file.assert_called_with("dummy.coffee")

        self.assertEqual(compiler.postprocess.call_count, 1)
        compiler.postprocess.assert_called_with("compiled", "dummy.coffee")

        self.assertEqual(compiler.write_output.call_count, 1)
        compiler.write_output.assert_called_with("compiled", "dummy.coffee")

        self.assertEqual(compiler.update_dependencies.call_count, 0)

        compiler.supports_dependencies = True
        compiler.compile("dummy.coffee")
        compiler.find_dependencies.assert_called_with("dummy.coffee")
        compiler.update_dependencies.assert_called_with("dummy.coffee", ["A", "B"])
    def test_compile(self):
        compiler = BaseCompiler()
        compiler.is_supported = MagicMock()
        compiler.should_compile = MagicMock()
        compiler.compile_file = MagicMock(return_value="compiled")
        compiler.write_output = MagicMock()
        compiler.get_output_path = MagicMock(return_value="dummy.js")
        compiler.postprocess = MagicMock(
            side_effect=lambda compiled, source_path: compiled
        )
        compiler.update_dependencies = MagicMock()
        compiler.find_dependencies = MagicMock(return_value=["A", "B"])

        compiler.is_supported.return_value = False
        self.assertRaises(ValueError, lambda: compiler.compile("dummy.coffee"))

        self.assertEqual(compiler.compile_file.call_count, 0)
        self.assertEqual(compiler.postprocess.call_count, 0)
        self.assertEqual(compiler.write_output.call_count, 0)

        compiler.is_supported.return_value = True
        compiler.should_compile.return_value = False
        self.assertEqual(compiler.compile("dummy.coffee"), "dummy.js")

        self.assertEqual(compiler.compile_file.call_count, 0)
        self.assertEqual(compiler.postprocess.call_count, 0)
        self.assertEqual(compiler.write_output.call_count, 0)

        compiler.should_compile.return_value = True
        self.assertEqual(compiler.compile("dummy.coffee"), "dummy.js")

        self.assertEqual(compiler.compile_file.call_count, 1)
        compiler.compile_file.assert_called_with("dummy.coffee")

        self.assertEqual(compiler.postprocess.call_count, 1)
        compiler.postprocess.assert_called_with("compiled", "dummy.coffee")

        self.assertEqual(compiler.write_output.call_count, 1)
        compiler.write_output.assert_called_with("compiled", "dummy.coffee")

        self.assertEqual(compiler.update_dependencies.call_count, 0)

        compiler.supports_dependencies = True
        compiler.compile("dummy.coffee")
        compiler.find_dependencies.assert_called_with("dummy.coffee")
        compiler.update_dependencies.assert_called_with("dummy.coffee", ["A", "B"])
Exemplo n.º 3
0
    def test_compile_lazy(self):
        compiler = BaseCompiler()
        compiler.compile = MagicMock()
        compiler.compile.return_value = "dummy.js"

        lazy_compiled = compiler.compile_lazy("dummy.coffee")

        # noinspection PyUnresolvedReferences
        self.assertEqual(compiler.compile.call_count, 0)

        self.assertEqual(str(lazy_compiled), "dummy.js")

        # noinspection PyUnresolvedReferences
        self.assertEqual(compiler.compile.call_count, 1)
        # noinspection PyUnresolvedReferences
        compiler.compile.assert_called_with("dummy.coffee")
    def test_compile_lazy(self):
        compiler = BaseCompiler()
        compiler.compile = MagicMock()
        compiler.compile.return_value = "dummy.js"

        lazy_compiled = compiler.compile_lazy("dummy.coffee")

        # noinspection PyUnresolvedReferences
        self.assertEqual(compiler.compile.call_count, 0)

        self.assertEqual(str(lazy_compiled), "dummy.js")

        # noinspection PyUnresolvedReferences
        self.assertEqual(compiler.compile.call_count, 1)
        # noinspection PyUnresolvedReferences
        compiler.compile.assert_called_with("dummy.coffee")
def test_compile(monkeypatch):
    compiler = BaseCompiler()

    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.compile_file",
        call_recorder(lambda self, *args: "compiled"))
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.write_output",
        call_recorder(lambda self, *args: None))
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.postprocess",
        call_recorder(lambda self, compiled, source_path: compiled))
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.update_dependencies",
        call_recorder(lambda self, *args: None))
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.find_dependencies",
        call_recorder(lambda self, *args: ["A", "B"]))
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.get_output_path",
        lambda self, *args: "dummy.js")

    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.is_supported",
        lambda self, *args: False)
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.should_compile",
        lambda self, *args, **kwargs: True)

    with pytest.raises(ValueError):
        compiler.compile("dummy.coffee")

    # noinspection PyUnresolvedReferences
    assert compiler.compile_file.calls == []
    # noinspection PyUnresolvedReferences
    assert compiler.write_output.calls == []
    # noinspection PyUnresolvedReferences
    assert compiler.postprocess.calls == []

    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.is_supported",
        lambda self, *args: True)
    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.should_compile",
        lambda self, *args, **kwargs: False)

    assert compiler.compile("dummy.coffee") == "dummy.js"
    # noinspection PyUnresolvedReferences
    assert compiler.compile_file.calls == []
    # noinspection PyUnresolvedReferences
    assert compiler.write_output.calls == []
    # noinspection PyUnresolvedReferences
    assert compiler.postprocess.calls == []

    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.should_compile",
        lambda self, *args, **kwargs: True)
    assert compiler.compile("dummy.coffee") == "dummy.js"

    # noinspection PyUnresolvedReferences
    assert compiler.compile_file.calls == [call(compiler, "dummy.coffee")]
    # noinspection PyUnresolvedReferences
    assert compiler.write_output.calls == [
        call(compiler, "compiled", "dummy.coffee")
    ]
    # noinspection PyUnresolvedReferences
    assert compiler.postprocess.calls == [
        call(compiler, "compiled", "dummy.coffee")
    ]

    # noinspection PyUnresolvedReferences
    assert compiler.update_dependencies.calls == []

    monkeypatch.setattr(
        "static_precompiler.compilers.base.BaseCompiler.supports_dependencies",
        True)
    compiler.supports_dependencies = True
    compiler.compile("dummy.coffee")
    # noinspection PyUnresolvedReferences
    assert compiler.find_dependencies.calls == [call(compiler, "dummy.coffee")]
    # noinspection PyUnresolvedReferences
    assert compiler.update_dependencies.calls == [
        call(compiler, "dummy.coffee", ["A", "B"])
    ]