@@ -847,16 +847,33 @@ def test_run_query(sushi_test_project: Project, runtime_renderer: t.Callable):
847847
848848
849849@pytest .mark .xdist_group ("dbt_manifest" )
850- def test_logging (sushi_test_project : Project , runtime_renderer : t .Callable ):
850+ def test_logging (sushi_test_project : Project , runtime_renderer : t .Callable , capsys ):
851851 context = sushi_test_project .context
852852 assert context .target
853853 engine_adapter = context .target .to_sqlmesh ().create_engine_adapter ()
854854 renderer = runtime_renderer (context , engine_adapter = engine_adapter )
855855
856856 logger = logging .getLogger ("sqlmesh.dbt.builtin" )
857- with patch .object (logger , "debug" ) as mock_logger :
857+
858+ # Test log with info=False (default) which should only log with debug
859+ with patch .object (logger , "debug" ) as mock_debug , patch .object (logger , "info" ) as mock_info :
858860 assert renderer ('{{ log("foo") }}' ) == ""
859- assert "foo" in mock_logger .call_args [0 ][0 ]
861+ mock_debug .assert_called_once ()
862+ assert "foo" in mock_debug .call_args [0 ][0 ]
863+ mock_info .assert_not_called ()
864+
865+ captured = capsys .readouterr ()
866+ assert "foo" not in captured .out
867+
868+ # Test log with info=True, now should log with info and also print to stdout
869+ with patch .object (logger , "debug" ) as mock_debug , patch .object (logger , "info" ) as mock_info :
870+ assert renderer ('{{ log("output to be logged with info", info=true) }}' ) == ""
871+ mock_info .assert_called_once ()
872+ assert "output to be logged with info" in mock_info .call_args [0 ][0 ]
873+ mock_debug .assert_not_called ()
874+
875+ captured = capsys .readouterr ()
876+ assert "output to be logged with info" in captured .out
860877
861878 with patch .object (logger , "debug" ) as mock_logger :
862879 assert renderer ('{{ print("bar") }}' ) == ""
0 commit comments