45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import unittest
|
|
|
|
from scripts.tesla import _charge_status_json
|
|
|
|
|
|
class TestChargeStatusJson(unittest.TestCase):
|
|
def test_charge_status_json_includes_useful_fields(self):
|
|
charge = {
|
|
'battery_level': 55,
|
|
'battery_range': 123.4,
|
|
'usable_battery_level': 52,
|
|
'charging_state': 'Charging',
|
|
'charge_limit_soc': 80,
|
|
'time_to_full_charge': 1.5,
|
|
'charge_rate': 22,
|
|
'charger_power': 7,
|
|
'charger_voltage': 240,
|
|
'charger_actual_current': 29,
|
|
'scheduled_charging_start_time': 60,
|
|
'scheduled_charging_mode': 'DepartBy',
|
|
'scheduled_charging_pending': True,
|
|
'charge_port_door_open': True,
|
|
'conn_charge_cable': 'SAEJ1772',
|
|
}
|
|
|
|
out = _charge_status_json(charge)
|
|
|
|
# Sanity checks: key presence and values pass through.
|
|
self.assertEqual(out.get('battery_level'), 55)
|
|
self.assertEqual(out.get('usable_battery_level'), 52)
|
|
self.assertEqual(out.get('charger_power'), 7)
|
|
self.assertEqual(out.get('charger_voltage'), 240)
|
|
self.assertEqual(out.get('charger_actual_current'), 29)
|
|
self.assertEqual(out.get('charge_port_door_open'), True)
|
|
self.assertEqual(out.get('conn_charge_cable'), 'SAEJ1772')
|
|
|
|
def test_charge_status_json_handles_none(self):
|
|
out = _charge_status_json(None)
|
|
self.assertIsInstance(out, dict)
|
|
self.assertIsNone(out.get('battery_level'))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|