code: def test_PropertyValueList_mutators(mock_notify: MagicMock) -> None:
      pvl = bcpw.PropertyValueList([10, 20, 30, 40, 50])
  
      mock_notify.reset_mock()
      del pvl[2]
      assert mock_notify.called
  
      # this exercises __delslice__ on Py2 but not Py3 which just
      # uses __delitem__ and a slice index
      mock_notify.reset_mock()
      del pvl[1:2]
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl += [888]
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl *= 2
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl[0] = 2
      assert mock_notify.called
  
      # this exercises __setslice__ on Py2 but not Py3 which just
      # uses __setitem__ and a slice index
      mock_notify.reset_mock()
      pvl[3:1:-1] = [21, 31]
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.append(999)
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.extend([1000])
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.insert(0, 100)
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.pop()
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.remove(100)
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.reverse()
      assert mock_notify.called
  
      mock_notify.reset_mock()
      pvl.sort()
      assert mock_notify.called
  
      # OK, this is just to get a 100% test coverage inpy3 due to differences in
      # py2 vs py2. The slice methods are only exist in py2. The tests above
      # exercise all the  cases, this just makes py3 report the non-py3 relevant
      # code as covered.
      try:
          pvl.__setslice__(1, 2, 3)
      except Exception:
          pass
  
      try:
          pvl.__delslice__(1, 2)
      except Exception:
          pass
  
imports: from __future__ import annotations
  import pytest
  from unittest.mock import MagicMock, patch
  from bokeh.core.properties import Angle, Any, Bool, Color, ColumnData, Complex, DashPattern, Dict, Either, Enum, Float, Instance, Int, Interval, List, MinMaxBounds, Percent, Regex, Seq, Size, String, Tuple
  from bokeh.models import ColumnDataSource
  from tests.support.util.api import verify_all
  from _util_property import _TestModel
  import bokeh.core.property.wrappers
label_desc: Use image node_id 20 for calling a global function with example usage: test_PropertyValueList_mutators(mock_notify) without return types