code: def test_cbwc007_pmc_update_subtree_ordering(dash_duo):
      # Test for regression bug #2368, updated pmc subtree should keep order.
      app = dash.Dash(__name__)
  
      app.layout = html.Div(
          [
              html.Button("refresh options", id="refresh-options"),
              html.Br(),
              html.Div(
                  [
                      *[
                          dcc.Dropdown(
                              id={"type": "demo-options", "index": i},
                              placeholder=f"dropdown-{i}",
                              style={"width": "200px"},
                          )
                          for i in range(2)
                      ],
                      dcc.Dropdown(
                          id={"type": "demo-options", "index": 2},
                          options=[f"option2-{i}" for i in range(3)],
                          placeholder="dropdown-2",
                          style={"width": "200px"},
                      ),
                  ],
                  id="dropdown-container",
              ),
              html.Br(),
              html.Pre(id="selected-values"),
          ],
          style={"padding": "50px"},
      )
  
      @app.callback(
          [
              Output({"type": "demo-options", "index": 0}, "options"),
              Output({"type": "demo-options", "index": 1}, "options"),
          ],
          Input("refresh-options", "n_clicks"),
          prevent_initial_call=True,
      )
      def refresh_options(_):
          return [
              [f"option0-{i}" for i in range(3)],
              [f"option1-{i}" for i in range(3)],
          ]
  
      @app.callback(
          Output("selected-values", "children"),
          Input({"type": "demo-options", "index": ALL}, "value"),
      )
      def update_selected_values(values):
          return str(values)
  
      dash_duo.start_server(app)
      dash_duo.select_dcc_dropdown(
          ".dash-dropdown:nth-child(3)", index=2
      )
  
      dash_duo.wait_for_text_to_equal(
          "#selected-values", "[None, None, 'option2-2']"
      )
  
      dash_duo.wait_for_element("#refresh-options").click()
  
      dash_duo.select_dcc_dropdown(
          ".dash-dropdown:nth-child(2)", index=2
      )
      dash_duo.wait_for_text_to_equal(
          "#selected-values", "[None, 'option1-2', 'option2-2']"
      )
  
      dash_duo.select_dcc_dropdown(
          ".dash-dropdown:nth-child(1)", index=2
      )
      dash_duo.wait_for_text_to_equal(
          "#selected-values", "['option0-2', 'option1-2', 'option2-2']"
      )
  
file_path: dash/tests/integration/callbacks/test_wildcards.py
imports: import pytest
  import re
  from selenium.webdriver.common.keys import Keys
  import json
  from dash.testing import wait
  import dash
  from dash import Dash, Input, Output, State, ALL, ALLSMALLER, MATCH, html, dcc
  from tests.assets.todo_app import todo_app
  from tests.assets.grouping_app import grouping_app
label_desc: Use image node_id 10 for calling a global function with example usage: test_cbwc007_pmc_update_subtree_ordering(dash_duo) and returns: list, str