|
|
|
@ -120,15 +120,19 @@ class TestPowerMonitoring(unittest.TestCase): |
|
|
|
|
def test_car_voltage(self): |
|
|
|
|
POWER_DRAW = 0 # To stop shutting down for other reasons |
|
|
|
|
TEST_TIME = 100 |
|
|
|
|
with pm_patch("HARDWARE.get_current_power_draw", POWER_DRAW): |
|
|
|
|
VOLTAGE_SHUTDOWN_MIN_OFFROAD_TIME_S = 50 |
|
|
|
|
with pm_patch("VOLTAGE_SHUTDOWN_MIN_OFFROAD_TIME_S", VOLTAGE_SHUTDOWN_MIN_OFFROAD_TIME_S, constant=True), pm_patch("HARDWARE.get_current_power_draw", POWER_DRAW): |
|
|
|
|
pm = PowerMonitoring() |
|
|
|
|
pm.car_battery_capacity_uWh = CAR_BATTERY_CAPACITY_uWh |
|
|
|
|
ignition = False |
|
|
|
|
start_time = ssb |
|
|
|
|
for i in range(TEST_TIME): |
|
|
|
|
pm.calculate(VOLTAGE_BELOW_PAUSE_CHARGING, ignition) |
|
|
|
|
if i % 10 == 0: |
|
|
|
|
self.assertEqual(pm.should_shutdown(ignition, True, ssb, True), (pm.car_voltage_mV < VBATT_PAUSE_CHARGING*1e3)) |
|
|
|
|
self.assertTrue(pm.should_shutdown(ignition, True, ssb, True)) |
|
|
|
|
self.assertEqual(pm.should_shutdown(ignition, True, start_time, True), |
|
|
|
|
(pm.car_voltage_mV < VBATT_PAUSE_CHARGING*1e3 and |
|
|
|
|
(ssb - start_time) > VOLTAGE_SHUTDOWN_MIN_OFFROAD_TIME_S)) |
|
|
|
|
self.assertTrue(pm.should_shutdown(ignition, True, start_time, True)) |
|
|
|
|
|
|
|
|
|
# Test to check policy of not stopping charging when DisablePowerDown is set |
|
|
|
|
def test_disable_power_down(self): |
|
|
|
|