compatibility_test.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from itertools import groupby
  2. import unittest
  3. import sys
  4. sys.path.append("..")
  5. from src.variables import variables
  6. class TestCompat(unittest.TestCase):
  7. def test_includes_names(self):
  8. names = [
  9. "equipment_id",
  10. "run_days",
  11. "solar_panel_is_charging",
  12. "solar_panel_is_night",
  13. "solar_panel_charge_state",
  14. "load_is_enabled",
  15. "load_state",
  16. "battery_empty_times",
  17. "battery_full_times",
  18. "battery_percentage",
  19. "battery_voltage",
  20. "battery_current",
  21. "battery_power",
  22. "load_voltage",
  23. "load_current",
  24. "load_power",
  25. "solar_panel_voltage",
  26. "solar_panel_current",
  27. "solar_panel_power",
  28. "solar_panel_daily_energy",
  29. "solar_panel_total_energy",
  30. "load_daily_energy",
  31. "load_total_energy",
  32. ]
  33. for name in names:
  34. self.assertIn(name, [v.name for v in variables], f"variable {name} doesn't exist anymore")
  35. def test_excludes_names(self):
  36. bad_names = [
  37. "battery_full_level",
  38. "battery_state_1",
  39. "battery_state_2",
  40. "solar_panel_state",
  41. "temperature_1",
  42. "temperature_2",
  43. ]
  44. for name in bad_names:
  45. self.assertNotIn(name, [v.name for v in variables], f"variable {name} still exists")
  46. def test_units(self):
  47. unit_mapping = {
  48. "battery_percentage": "%",
  49. "battery_voltage": "V",
  50. "battery_current": "A",
  51. "battery_power": "W",
  52. "load_voltage": "V",
  53. "load_current": "A",
  54. "load_power": "W",
  55. "solar_panel_voltage": "V",
  56. "solar_panel_current": "A",
  57. "solar_panel_power": "W",
  58. "solar_panel_daily_energy": "kWh",
  59. "solar_panel_total_energy": "kWh",
  60. "load_daily_energy": "kWh",
  61. "load_total_energy": "kWh",
  62. }
  63. for name, unit in unit_mapping.items():
  64. items = [v for v in variables if name == v.name]
  65. self.assertTrue(items, f"variable {name} doesn't exist anymore")
  66. self.assertEqual(items[0].unit, unit)