code: def test_prop_callback_nested_arrays(self):
      # Initialize updatemenus and buttons
      self.figure.layout.updatemenus = [{}, {}, {}]
      self.figure.layout.updatemenus[2].buttons = [{}, {}]
      self.figure.layout.updatemenus[2].buttons[1].label = "button 1"
      self.figure.layout.updatemenus[2].buttons[1].method = "relayout"
  
      # Register method callback
      fn_button = MagicMock()
      fn_layout = MagicMock()
  
      self.figure.layout.updatemenus[2].buttons[1].on_change(
          fn_button, "method"
      )
  
      self.figure.layout.on_change(
          fn_layout, "updatemenus[2].buttons[1].method"
      )
  
      # Update button method
      self.figure.layout.updatemenus[2].buttons[1].method = "restyle"
  
      # Check that both callbacks are called once
      fn_button.assert_called_once_with(
          self.figure.layout.updatemenus[2].buttons[1], "restyle"
      )
  
      fn_layout.assert_called_once_with(self.figure.layout, "restyle")
  
imports: import sys
  from unittest import TestCase
  import pytest
  import plotly.graph_objs
label_desc: Use image node_id 10 for calling the TestOnChangeCallbacks obj's underlying member method code with example usage: obj.test_prop_callback_nested_arrays() without return types