code: def test_single_prop_callback_on_assignment(self):
      # Install callbacks on 'x', and 'y' property of first trace
      fn_x = MagicMock()
      fn_y = MagicMock()
      self.figure.data[0].on_change(fn_x, "x")
      self.figure.data[0].on_change(fn_y, "y")
  
      # Setting x and y on second trace does not trigger callback
      self.figure.data[1].x = [1, 2, 3]
      self.figure.data[1].y = [1, 2, 3]
  
      self.assertFalse(fn_x.called)
      self.assertFalse(fn_y.called)
  
      # Set x on first trace
      self.figure.data[0].x = [10, 20, 30]
      fn_x.assert_called_once_with(self.figure.data[0], (10, 20, 30))
      self.assertFalse(fn_y.called)
  
      # Set y on first trace
      self.figure.data[0].y = [11, 22, 33]
      fn_y.assert_called_once_with(self.figure.data[0], (11, 22, 33))
  
imports: import sys
  from unittest import TestCase
  import pytest
  import plotly.graph_objs
label_desc: Use image node_id 6 for calling the TestOnChangeCallbacks obj's underlying member method code with example usage: obj.test_single_prop_callback_on_assignment() without return types