Files
officialpm_my-tesla/tests/test_charge_status_json.py

45 lines
1.5 KiB
Python
Raw Normal View History

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()