def _unplug_test_setup_helper(self, real_session_id: str) -> EVSE: evse = EVSE("PS-001") ev = create_autospec(EV) ev.station_id = "PS-001" ev.session_id = real_session_id evse.plugin(ev) self.network.register_evse(evse, 240, 0) return evse
def test_plugin_station_exists(self): evse = EVSE("PS-001") evse.plugin = Mock(evse.plugin) self.network.register_evse(evse, 240, 0) ev = create_autospec(EV) self.network.plugin(ev, "PS-001") evse.plugin.assert_called_once()
def test_plugin_station_exists(self) -> None: evse = EVSE("PS-001") evse.plugin = Mock(evse.plugin) self.network.register_evse(evse, 240, 0) ev = create_autospec(EV) ev.station_id = "PS-001" self.network.plugin(ev) # noinspection PyUnresolvedReferences evse.plugin.assert_called_once()
class TestEVSE(TestCase): def setUp(self): self.evse = EVSE('0001') def test_allowable_pilot_signals(self): self.assertEqual(self.evse.allowable_pilot_signals, [0, float('inf')]) def test_plugin_unoccupied(self): ev = create_autospec(EV) self.evse.plugin(ev) self.assertEqual(self.evse.ev, ev) def test_plugin_occupied(self): ev = create_autospec(EV) ev2 = create_autospec(EV) self.evse.plugin(ev) self.assertEqual(self.evse.ev, ev) with self.assertRaises(StationOccupiedError): self.evse.plugin(ev2) def test_unplug_occupied(self): ev = create_autospec(EV) self.evse.plugin(ev) self.evse.unplug() self.assertIsNone(self.evse.ev) def test_unplug_unoccupied(self): self.evse.unplug() self.assertIsNone(self.evse.ev) def test_set_pilot_has_ev_valid_rate(self): ev = create_autospec(EV) self.evse.plugin(ev) self.evse.set_pilot(16, 240, 5) self.assertEqual(self.evse.current_pilot, 16) self.evse.ev.charge.assert_called_once() def test_set_pilot_has_ev_negative_rate(self): ev = create_autospec(EV) self.evse.plugin(ev) with self.assertRaises(InvalidRateError): self.evse.set_pilot(-1, 240, 5) def test_set_pilot_no_ev_negative_rate(self): with self.assertRaises(InvalidRateError): self.evse.set_pilot(-1, 240, 5)
class TestEVSE(TestCase): def setUp(self): self.max_rate = 32 self.mid_rate = 16 self.atol = 1e-3 self.evse = EVSE("0001", max_rate=self.max_rate) def test_allowable_pilot_signals_default(self): inf_evse = EVSE("0001") self.assertEqual(inf_evse.allowable_pilot_signals, [0, float("inf")]) def test_allowable_pilot_signals(self): self.assertEqual(self.evse.allowable_pilot_signals, [0, self.max_rate]) def test_plugin_unoccupied(self): ev = create_autospec(EV) self.evse.plugin(ev) self.assertEqual(self.evse.ev, ev) def test_plugin_occupied(self): ev = create_autospec(EV) ev2 = create_autospec(EV) self.evse.plugin(ev) self.assertEqual(self.evse.ev, ev) with self.assertRaises(StationOccupiedError): self.evse.plugin(ev2) def test_unplug_occupied(self): ev = create_autospec(EV) self.evse.plugin(ev) self.evse.unplug() self.assertIsNone(self.evse.ev) def test_unplug_unoccupied(self): self.evse.unplug() self.assertIsNone(self.evse.ev) def _set_pilot_has_ev_valid_rate_helper(self, pilot): ev = create_autospec(EV) self.evse.plugin(ev) self.evse.set_pilot(pilot, 240, 5) self.assertEqual(self.evse.current_pilot, pilot) self.evse.ev.charge.assert_called_once() def test_set_pilot_has_ev_valid_rate(self): self._set_pilot_has_ev_valid_rate_helper(self.mid_rate) def test_set_pilot_has_ev_almost_large_rate(self): self._set_pilot_has_ev_valid_rate_helper( self.max_rate + self.atol - self.atol / 1e2 ) def test_set_pilot_has_ev_almost_small_rate(self): self._set_pilot_has_ev_valid_rate_helper(-self.atol + self.atol / 1e2) def test_set_pilot_has_ev_negative_rate(self): ev = create_autospec(EV) self.evse.plugin(ev) with self.assertRaises(InvalidRateError): self.evse.set_pilot(-1, 240, 5) def _set_pilot_no_ev_invalid_rate_helper(self, pilot): with self.assertRaises(InvalidRateError): self.evse.set_pilot(pilot, 240, 5) def test_set_pilot_no_ev_negative_rate(self): self._set_pilot_no_ev_invalid_rate_helper(-1) def test_set_pilot_no_ev_large_rate(self): self._set_pilot_no_ev_invalid_rate_helper(self.max_rate + 1) def test_set_pilot_no_ev_barely_large_rate(self): self._set_pilot_no_ev_invalid_rate_helper( self.max_rate + self.atol + self.atol / 1e2 ) def test_set_pilot_no_ev_barely_small_rate(self): self._set_pilot_no_ev_invalid_rate_helper(-self.atol - self.atol / 1e2)
def test_get_ev_station_exists(self): evse = EVSE("PS-001") ev = Mock(EV) evse.plugin(ev) self.network.register_evse(evse, 240, 0) self.assertIs(self.network.get_ev("PS-001"), ev)