1
0

test_utils.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """Tests for utils.py functionality."""
  2. from __future__ import annotations
  3. from switchbot.utils import format_mac_upper
  4. def test_format_mac_upper() -> None:
  5. """Test the format_mac_upper utility function."""
  6. # Test already formatted with colons (lowercase)
  7. assert format_mac_upper("aa:bb:cc:dd:ee:ff") == "AA:BB:CC:DD:EE:FF"
  8. # Test already formatted with colons (uppercase)
  9. assert format_mac_upper("AA:BB:CC:DD:EE:FF") == "AA:BB:CC:DD:EE:FF"
  10. # Test with dashes
  11. assert format_mac_upper("aa-bb-cc-dd-ee-ff") == "AA:BB:CC:DD:EE:FF"
  12. assert format_mac_upper("AA-BB-CC-DD-EE-FF") == "AA:BB:CC:DD:EE:FF"
  13. # Test with dots (Cisco format)
  14. assert format_mac_upper("aabb.ccdd.eeff") == "AA:BB:CC:DD:EE:FF"
  15. assert format_mac_upper("AABB.CCDD.EEFF") == "AA:BB:CC:DD:EE:FF"
  16. # Test without separators
  17. assert format_mac_upper("aabbccddeeff") == "AA:BB:CC:DD:EE:FF"
  18. assert format_mac_upper("AABBCCDDEEFF") == "AA:BB:CC:DD:EE:FF"
  19. # Test mixed case without separators
  20. assert format_mac_upper("AaBbCcDdEeFf") == "AA:BB:CC:DD:EE:FF"
  21. # Test invalid formats (should return original in uppercase)
  22. assert format_mac_upper("invalid") == "INVALID"
  23. assert format_mac_upper("aa:bb:cc") == "AA:BB:CC" # Too short
  24. assert (
  25. format_mac_upper("aa:bb:cc:dd:ee:ff:gg") == "AA:BB:CC:DD:EE:FF:GG"
  26. ) # Too long
  27. # Test edge cases
  28. assert format_mac_upper("") == ""
  29. assert format_mac_upper("123456789ABC") == "12:34:56:78:9A:BC"
  30. assert format_mac_upper("12:34:56:78:9a:bc") == "12:34:56:78:9A:BC"