Fix failing test, therefore fixing #89

This commit is contained in:
enkore 2015-06-21 20:24:22 +02:00
parent 277aa45de9
commit 14b35c6081

View File

@ -47,7 +47,9 @@ class Battery:
return self._percentage("_DESIGN" if design else "") * 100 return self._percentage("_DESIGN" if design else "") * 100
def status(self): def status(self):
if self.consumption() > 0.1 and self.percentage() < 99.9: if self.consumption() is None:
return self.battery_info["STATUS"]
elif self.consumption() > 0.1 and self.percentage() < 99.9:
return "Discharging" if self.battery_info["STATUS"] == "Discharging" else "Charging" return "Discharging" if self.battery_info["STATUS"] == "Discharging" else "Charging"
elif self.consumption() == 0 and self.percentage() == 0.00: elif self.consumption() == 0 and self.percentage() == 0.00:
return "Depleted" return "Depleted"
@ -67,7 +69,7 @@ class BatteryCharge(Battery):
if "VOLTAGE_NOW" in self.battery_info and "CURRENT_NOW" in self.battery_info: if "VOLTAGE_NOW" in self.battery_info and "CURRENT_NOW" in self.battery_info:
return super().consumption(self.battery_info["VOLTAGE_NOW"] * self.battery_info["CURRENT_NOW"]) # V * A = W return super().consumption(self.battery_info["VOLTAGE_NOW"] * self.battery_info["CURRENT_NOW"]) # V * A = W
else: else:
return -1 return None
def _percentage(self, design): def _percentage(self, design):
return self.battery_info["CHARGE_NOW"] / self.battery_info["CHARGE_FULL" + design] return self.battery_info["CHARGE_NOW"] / self.battery_info["CHARGE_FULL" + design]
@ -185,11 +187,17 @@ class BatteryChecker(IntervalModule):
return total / len(batteries) return total / len(batteries)
def consumption(self, batteries): def consumption(self, batteries):
return sum([bat.consumption() for bat in batteries]) consumption = 0
for battery in batteries:
if battery.consumption() is not None:
consumption += battery.consumption()
return consumption
def abs_consumption(self, batteries): def abs_consumption(self, batteries):
abs_consumption = 0 abs_consumption = 0
for battery in batteries: for battery in batteries:
if battery.consumption() is None:
continue
if battery.status() == 'Discharging': if battery.status() == 'Discharging':
abs_consumption -= battery.consumption() abs_consumption -= battery.consumption()
elif battery.status() == 'Charging': elif battery.status() == 'Charging':
@ -203,7 +211,7 @@ class BatteryChecker(IntervalModule):
elif abs_consumption < 0: elif abs_consumption < 0:
return 'Discharging' return 'Discharging'
else: else:
return batteries.pop().status() return batteries[-1].status()
def remaining(self, batteries): def remaining(self, batteries):
wh_depleted = 0 wh_depleted = 0