code: def test_output_file_file_exists(
      self, mock_isfile: MagicMock, mock_log: MagicMock
  ) -> None:
      mock_isfile.return_value = True
      s = bis.State()
      s.output_file("foo.html")
      assert s.file.filename == "foo.html"
      assert s.file.title == "Bokeh Plot"
      assert s.file.resources.log_level == "info"
      assert s.file.resources.minified is True
      assert mock_log.info.call_count == 1
      assert mock_log.info.call_args[0] == (
          "Session output file 'foo.html' already exists, will be overwritten.",
      )
  
file_path: bokeh/tests/unit/bokeh/io/test_state.py
imports: from __future__ import annotations
  import pytest
  from unittest.mock import MagicMock, patch
  from bokeh.document import Document
  import bokeh.io.state
label_desc: Use image node_id 4 for calling the Test_State obj's underlying member method code with example usage: obj.test_output_file_file_exists(mock_isfile, mock_log) without return types