code: def test_multi_prop_callback_on_assignment_layout(self):
      fn_range = MagicMock()
  
      # Register callback if either axis range is changed. Both tuple and
      # dot syntax are supported for nested properties
      self.figure.layout.on_change(
          fn_range, ("xaxis", "range"), "yaxis.range"
      )
  
      self.figure.layout.xaxis.range = [-10, 10]
      fn_range.assert_called_once_with(
          self.figure.layout, (-10, 10), None
      )
  
imports: import sys
  from unittest import TestCase
  import pytest
  import plotly.graph_objs
label_desc: Use image node_id 8 for calling the TestOnChangeCallbacks obj's underlying member method code with example usage: obj.test_multi_prop_callback_on_assignment_layout() without return types