code: def test_colors():
      light = pv.Light()
  
      color = (0.0, 1.0, 0.0)
      light.diffuse_color = color
      assert light.diffuse_color == color
      color = (0.0, 0.0, 1.0)
      light.specular_color = color
      assert light.specular_color == color
      color = (1.0, 0.0, 0.0)
      light.ambient_color = color
      assert light.ambient_color == color
  
      # test whether strings raise but don't test the result
      for valid in "white", "r", "#c0ffee":
          light.diffuse_color = valid
          light.specular_color = valid
          light.ambient_color = valid
      with pytest.raises(ValueError):
          light.diffuse_color = "invalid"
      with pytest.raises(ValueError):
          light.specular_color = "invalid"
      with pytest.raises(ValueError):
          light.ambient_color = "invalid"
  
file_path: pyvista/tests/plotting/test_lights.py
imports: import numpy
  import pytest
  import vtk
  import pyvista
label_desc: Use image node_id 4 for calling a global function with example usage: test_colors() without return types