parser_test.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import unittest
  2. import sys
  3. sys.path.append("..")
  4. from src.parser import ModbusParser
  5. class TestParser(unittest.TestCase):
  6. def setUp(self):
  7. self.parser = ModbusParser()
  8. def test_includes_names(self):
  9. names = [
  10. "equipment_id",
  11. "run_days",
  12. "solar_panel_is_charging",
  13. "solar_panel_is_night",
  14. "solar_panel_charge_state",
  15. "load_is_enabled",
  16. "load_state",
  17. "battery_empty_times",
  18. "battery_full_times",
  19. "battery_percentage",
  20. "battery_voltage",
  21. "battery_current",
  22. "battery_power",
  23. "load_voltage",
  24. "load_current",
  25. "load_power",
  26. "solar_panel_voltage",
  27. "solar_panel_current",
  28. "solar_panel_power",
  29. "solar_panel_daily_energy",
  30. "solar_panel_total_energy",
  31. "load_daily_energy",
  32. "load_total_energy",
  33. ]
  34. for name in names:
  35. self.assertIn(name, [v.name for v in self.parser.variables], f"variable {name} doesn't exist anymore")
  36. def test_excludes_names(self):
  37. bad_names = [
  38. "battery_full_level",
  39. "battery_state_1",
  40. "battery_state_2",
  41. "solar_panel_state",
  42. "temperature_1",
  43. "temperature_2",
  44. ]
  45. for name in bad_names:
  46. self.assertNotIn(name, [v.name for v in self.parser.variables], f"variable {name} still exists")
  47. def test_multiplier_func_exclusion(self):
  48. for variable in self.parser.variables:
  49. if variable.multiplier:
  50. self.assertIsNone(variable.func)
  51. def test_func_32_bit_exclusion(self):
  52. for variable in self.parser.variables:
  53. if variable.is_32_bit:
  54. self.assertIsNone(variable.func)
  55. if __name__ == "__main__":
  56. unittest.main()