Fix slow OBD value load on dashboard (BUG-19)

This commit is contained in:
Mathieu Moran
2026-08-13 16:57:16 -04:00
parent e873db918d
commit c2462356e1
5 changed files with 141 additions and 4 deletions
+54
View File
@@ -72,5 +72,59 @@ class ClearDtcCodesTest(unittest.TestCase):
mock_mark.assert_called_once()
class EmitCurrentStateTest(unittest.TestCase):
def setUp(self):
self._saved = {
name: getattr(app_obd, name)
for name in (
"speed", "rpm", "coolant_temp", "fuel_level",
"throttle_position", "mil_on", "dtc_codes",
)
}
def tearDown(self):
for name, value in self._saved.items():
setattr(app_obd, name, value)
def _emitted(self, mock_emit):
return {call.args[0]: call.args[1] for call in mock_emit.call_args_list}
def test_connected_emits_current_values(self):
app_obd.speed = 42.5
app_obd.rpm = 1200
app_obd.coolant_temp = 88.0
app_obd.fuel_level = 60.0
app_obd.throttle_position = 12.0
app_obd.mil_on = False
app_obd.dtc_codes = []
with patch.object(app_obd, "_is_car_connected", return_value=True), \
patch("modules.app_events.socketio.emit") as mock_emit:
app_obd.emit_current_state()
emitted = self._emitted(mock_emit)
self.assertEqual(emitted["obd_status"], "Connected")
self.assertEqual(emitted["obd_rpm"], 1200)
self.assertEqual(emitted["obd_coolant_temp"], 88.0)
self.assertEqual(emitted["obd_fuel_level"], 60.0)
self.assertEqual(emitted["obd_throttle"], 12.0)
# speed is emitted as [time, speed]
self.assertEqual(emitted["obd_speed"][1], 42.5)
def test_disconnected_emits_dashes(self):
app_obd.rpm = None
app_obd.coolant_temp = None
app_obd.fuel_level = None
app_obd.throttle_position = None
with patch.object(app_obd, "_is_car_connected", return_value=False), \
patch("modules.app_events.socketio.emit") as mock_emit:
app_obd.emit_current_state()
emitted = self._emitted(mock_emit)
self.assertEqual(emitted["obd_status"], "Disconnected")
self.assertEqual(emitted["obd_speed"], "-")
self.assertEqual(emitted["obd_rpm"], "-")
self.assertEqual(emitted["obd_coolant_temp"], "-")
self.assertEqual(emitted["obd_fuel_level"], "-")
self.assertEqual(emitted["obd_throttle"], "-")
if __name__ == "__main__":
unittest.main()