code: def test_text_rotation_update():
      # Regression test for a bug that caused text labels to not be redrawn
      # if the rotation angle was updated
  
      with TestingCanvas() as c:
          text = Text("testing", pos=(100, 100), parent=c.scene)
          c.update()
          c.app.process_events()
          assert_allclose(text.shared_program["a_rotation"], 0.0)
          text.rotation = 30.0
          c.update()
          c.app.process_events()
          assert_allclose(
              text.shared_program["a_rotation"], np.radians(30.0)
          )
  
file_path: vispy/vispy/visuals/tests/test_text.py
imports: import numpy
  from numpy.testing import assert_allclose
  from vispy.scene.visuals import Text
  from vispy.testing import requires_application, TestingCanvas, run_tests_if_main
  from vispy.testing.image_tester import assert_image_approved
label_desc: Use image node_id 2 for calling a global function with example usage: test_text_rotation_update() without return types