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"])
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"]) ]