code: def test_displays_dict_of_list_of_tuple_options_with_default_value(
      self, bokeh_model_page: BokehModelPage
  ) -> None:
      select = Select(
          options=dict(
              g1=[("11", "Option 11")],
              g2=[("21", "Option 21"), ("22", "Option 22")],
          ),
          value="22",
      )
  
      page = bokeh_model_page(select)
  
      label_el = find_element_for(page.driver, select, "label")
      assert label_el.text == ""
  
      select_el = find_element_for(page.driver, select, "select")
      assert select_el.get_attribute("value") == "22"
  
      grps = select_el.find_elements(By.TAG_NAME, "optgroup")
      assert len(grps) == 2
  
      for i, grp in enumerate(grps, 1):
          assert grp.get_attribute("label") == f"g{i}"
          opts = grp.find_elements(By.TAG_NAME, "option")
          assert len(opts) == i
          for j, opt in enumerate(opts, 1):
              assert opt.text == f"Option {i*10 + j}"
              assert opt.get_attribute("value") == f"{i*10 + j}"
  
      assert page.has_no_console_errors()
  
file_path: bokeh/tests/integration/widgets/test_select.py
imports: from __future__ import annotations
  import pytest
  from selenium.webdriver.common.by import By
  from bokeh.layouts import column
  from bokeh.models import ColumnDataSource, CustomJS, Plot, Range1d, Scatter, Select
  from tests.support.plugins.project import BokehModelPage, BokehServerPage
  from tests.support.util.selenium import RECORD, find_element_for
label_desc: Use image node_id 9 for calling the Test_Select obj's underlying member method code with example usage: obj.test_displays_dict_of_list_of_tuple_options_with_default_value(bokeh_model_page) without return types