|
3 | 3 | import datetime |
4 | 4 | import json |
5 | 5 | import os |
6 | | -from pvcontrol.car import HtmlFormParser, LoginFormParser, VolkswagenIDCar, VolkswagenIDCarConfig |
| 6 | +from pvcontrol.car import Car, CarConfig, CarData, HtmlFormParser, LoginFormParser, VolkswagenIDCar, VolkswagenIDCarConfig, SimulatedCar |
7 | 7 |
|
8 | 8 | logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s - %(message)s") |
9 | 9 | # logging.getLogger("urllib3.connectionpool").setLevel(logging.INFO) |
@@ -176,3 +176,41 @@ def test_disabled(self): |
176 | 176 | c = self.car.read_data() |
177 | 177 | self.assertEqual(1, c.error) |
178 | 178 | self.assertEqual(0, c.soc) |
| 179 | + |
| 180 | + |
| 181 | +class SimulatedCarTest(unittest.TestCase): |
| 182 | + def setUp(self): |
| 183 | + self.car = SimulatedCar(CarConfig()) |
| 184 | + |
| 185 | + def test_energy_consumption(self): |
| 186 | + c = self.car.read_data() |
| 187 | + self.assertEqual(50, c.soc) |
| 188 | + self.assertEqual(0, Car._metrics_pvc_car_energy_consumption._value.get()) |
| 189 | + |
| 190 | + # driving |
| 191 | + self.car.set_data(CarData(soc=49)) |
| 192 | + c = self.car.read_data() |
| 193 | + self.assertEqual(49, c.soc) |
| 194 | + self.assertEqual(580, Car._metrics_pvc_car_energy_consumption._value.get()) |
| 195 | + |
| 196 | + self.car.set_data(CarData(soc=40)) |
| 197 | + c = self.car.read_data() |
| 198 | + self.assertEqual(40, c.soc) |
| 199 | + self.assertEqual(5800, Car._metrics_pvc_car_energy_consumption._value.get()) |
| 200 | + |
| 201 | + # not driving |
| 202 | + c = self.car.read_data() |
| 203 | + self.assertEqual(40, c.soc) |
| 204 | + self.assertEqual(5800, Car._metrics_pvc_car_energy_consumption._value.get()) |
| 205 | + |
| 206 | + # charging |
| 207 | + self.car.set_data(CarData(soc=50)) |
| 208 | + c = self.car.read_data() |
| 209 | + self.assertEqual(50, c.soc) |
| 210 | + self.assertEqual(5800, Car._metrics_pvc_car_energy_consumption._value.get()) |
| 211 | + |
| 212 | + # driving |
| 213 | + self.car.set_data(CarData(soc=40)) |
| 214 | + c = self.car.read_data() |
| 215 | + self.assertEqual(40, c.soc) |
| 216 | + self.assertEqual(2 * 5800, Car._metrics_pvc_car_energy_consumption._value.get()) |
0 commit comments