test_colormode_imports.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. """Test ColorMode imports for backward compatibility."""
  2. def test_colormode_import_from_main_module():
  3. """Test that ColorMode can be imported from the main switchbot module."""
  4. from switchbot import ColorMode
  5. # Verify it's the enum we expect
  6. assert hasattr(ColorMode, "OFF")
  7. assert hasattr(ColorMode, "COLOR_TEMP")
  8. assert hasattr(ColorMode, "RGB")
  9. assert hasattr(ColorMode, "EFFECT")
  10. # Verify the values
  11. assert ColorMode.OFF.value == 0
  12. assert ColorMode.COLOR_TEMP.value == 1
  13. assert ColorMode.RGB.value == 2
  14. assert ColorMode.EFFECT.value == 3
  15. def test_colormode_import_from_device_module():
  16. """Test that ColorMode can be imported from switchbot.devices.device for backward compatibility."""
  17. from switchbot.devices.device import ColorMode
  18. # Verify it's the enum we expect
  19. assert hasattr(ColorMode, "OFF")
  20. assert hasattr(ColorMode, "COLOR_TEMP")
  21. assert hasattr(ColorMode, "RGB")
  22. assert hasattr(ColorMode, "EFFECT")
  23. # Verify the values
  24. assert ColorMode.OFF.value == 0
  25. assert ColorMode.COLOR_TEMP.value == 1
  26. assert ColorMode.RGB.value == 2
  27. assert ColorMode.EFFECT.value == 3
  28. def test_colormode_import_from_const():
  29. """Test that ColorMode can be imported from switchbot.const."""
  30. from switchbot.const import ColorMode
  31. # Verify it's the enum we expect
  32. assert hasattr(ColorMode, "OFF")
  33. assert hasattr(ColorMode, "COLOR_TEMP")
  34. assert hasattr(ColorMode, "RGB")
  35. assert hasattr(ColorMode, "EFFECT")
  36. # Verify the values
  37. assert ColorMode.OFF.value == 0
  38. assert ColorMode.COLOR_TEMP.value == 1
  39. assert ColorMode.RGB.value == 2
  40. assert ColorMode.EFFECT.value == 3
  41. def test_colormode_import_from_const_light():
  42. """Test that ColorMode can be imported from switchbot.const.light."""
  43. from switchbot.const.light import ColorMode
  44. # Verify it's the enum we expect
  45. assert hasattr(ColorMode, "OFF")
  46. assert hasattr(ColorMode, "COLOR_TEMP")
  47. assert hasattr(ColorMode, "RGB")
  48. assert hasattr(ColorMode, "EFFECT")
  49. # Verify the values
  50. assert ColorMode.OFF.value == 0
  51. assert ColorMode.COLOR_TEMP.value == 1
  52. assert ColorMode.RGB.value == 2
  53. assert ColorMode.EFFECT.value == 3
  54. def test_all_colormode_imports_are_same_object():
  55. """Test that all ColorMode imports reference the same enum object."""
  56. from switchbot import ColorMode as ColorMode1
  57. from switchbot.const import ColorMode as ColorMode3
  58. from switchbot.const.light import ColorMode as ColorMode4
  59. from switchbot.devices.device import ColorMode as ColorMode2
  60. # They should all be the exact same object
  61. assert ColorMode1 is ColorMode2
  62. assert ColorMode2 is ColorMode3
  63. assert ColorMode3 is ColorMode4
  64. # And their members should be the same
  65. assert ColorMode1.OFF is ColorMode2.OFF
  66. assert ColorMode1.COLOR_TEMP is ColorMode3.COLOR_TEMP
  67. assert ColorMode1.RGB is ColorMode4.RGB
  68. assert ColorMode1.EFFECT is ColorMode2.EFFECT