code: def test_clicking_resets_selection(
      self, single_plot_page: SinglePlotPage
  ) -> None:
      source = ColumnDataSource(dict(x=[1, 2], y=[1, 1]))
      source.selected.indices = [0]
      source.selected.line_indices = [0]
  
      # XXX (bev) string key for multiline_indices seems questionable
      source.selected.multiline_indices = {"0": [0]}
  
      plot = Plot(
          height=400,
          width=400,
          x_range=Range1d(0, 1),
          y_range=Range1d(0, 1),
          min_border=0,
      )
      plot.add_glyph(source, Scatter(x="x", y="y", size=20))
      plot.add_tools(ResetTool())
      code = (
          RECORD("indices", "s.selected.indices")
          + RECORD("line_indices", "s.selected.line_indices")
          + RECORD("multiline_indices", "s.selected.multiline_indices")
      )
      plot.tags.append(
          CustomJS(name="custom-action", args=dict(s=source), code=code)
      )
      plot.toolbar_sticky = False
  
      page = single_plot_page(plot)
  
      # Verify selections are non empty
      page.eval_custom_action()
  
      results = page.results
      assert results["indices"] == [0]
      assert results["line_indices"] == [0]
      assert results["multiline_indices"] == {
          "0": [0]
      }  # XXX (bev) string key
  
      # Click the reset tool and check the selections are restored
      [reset] = page.get_toolbar_buttons(plot)
      reset.click()
  
      page.eval_custom_action()
  
      results = page.results
      assert results["indices"] == []
      assert results["line_indices"] == []
      assert results["multiline_indices"] == {}
  
      assert page.has_no_console_errors()
  
file_path: bokeh/tests/integration/tools/test_reset_tool.py
imports: from __future__ import annotations
  import pytest
  from bokeh.events import RangesUpdate
  from bokeh.models import ColumnDataSource, CustomJS, Plot, Range1d, Rect, ResetTool, Scatter, ZoomInTool
  from tests.support.plugins.project import SinglePlotPage
  from tests.support.util.selenium import RECORD
label_desc: Use image node_id 3 for calling the Test_ResetTool obj's underlying member method code with example usage: obj.test_clicking_resets_selection(single_plot_page) without return types