diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-27 01:49:17 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-27 01:49:17 +0100 |
commit | 2033bf7409c6599dd36e3241c4d299f8eefa2c09 (patch) | |
tree | 32ab65036c0d9e25b5eec327bc8c9425e39b6944 | |
parent | bfc5e528574e14485d61ddad7e9a57850b9fb93e (diff) | |
download | psutil-955-battery-sensors.tar.gz |
#955: win / bttery - implement power plugged955-battery-sensors
-rw-r--r-- | psutil/_pswindows.py | 15 | ||||
-rwxr-xr-x | psutil/tests/test_windows.py | 11 |
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", |