summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-01-27 01:49:17 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2017-01-27 01:49:17 +0100
commit2033bf7409c6599dd36e3241c4d299f8eefa2c09 (patch)
tree32ab65036c0d9e25b5eec327bc8c9425e39b6944
parentbfc5e528574e14485d61ddad7e9a57850b9fb93e (diff)
downloadpsutil-955-battery-sensors.tar.gz
#955: win / bttery - implement power plugged955-battery-sensors
-rw-r--r--psutil/_pswindows.py15
-rwxr-xr-xpsutil/tests/test_windows.py11
2 files changed, 13 insertions, 13 deletions
diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py
index 51e2efab..dd83c929 100644
--- a/psutil/_pswindows.py
+++ b/psutil/_pswindows.py
@@ -367,25 +367,22 @@ def net_if_addrs():
def sensors_battery():
+ # For constants meaning see:
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/
+ # aa373232(v=vs.85).aspx
acline_status, flags, percent, secsleft = cext.sensors_battery()
- power_connected = acline_status == 1
+ power_plugged = acline_status == 1
no_battery = bool(flags & 128)
charging = bool(flags & 8)
- # print("acline_status=%s, flags=%s, percent=%s, secsleft=%s" % (
- # acline_status, flags, percent, secsleft))
- # print("power_connected=%s, no_battery=%s, charging=%s" % (
- # power_connected, no_battery, charging))
-
if no_battery:
return None
- if power_connected or charging:
+ if power_plugged or charging:
secsleft = _common.POWER_TIME_UNLIMITED
elif secsleft == -1:
secsleft = _common.POWER_TIME_UNKNOWN
- # TODO: implement power_plugged
- return _common.sbattery(percent, secsleft, False)
+ return _common.sbattery(percent, secsleft, power_plugged)
# =====================================================================
diff --git a/psutil/tests/test_windows.py b/psutil/tests/test_windows.py
index 669adad0..aca8afbb 100755
--- a/psutil/tests/test_windows.py
+++ b/psutil/tests/test_windows.py
@@ -172,10 +172,13 @@ class TestSensorsBattery(unittest.TestCase):
battery_wmi = w.query('select * from Win32_Battery')[0]
if battery_psutil is None:
self.assertNot(battery_wmi.EstimatedChargeRemaining)
- else:
- self.assertAlmostEqual(
- battery_psutil.percent, battery_wmi.EstimatedChargeRemaining,
- delta=1)
+ return
+
+ self.assertAlmostEqual(
+ battery_psutil.percent, battery_wmi.EstimatedChargeRemaining,
+ delta=1)
+ self.assertEqual(
+ battery_psutil.power_plugged, battery_wmi.BatteryStatus == 1)
def test_emulate_no_battery(self):
with mock.patch("psutil._pswindows.cext.sensors_battery",