From 2033bf7409c6599dd36e3241c4d299f8eefa2c09 Mon Sep 17 00:00:00 2001 From: Giampaolo Rodola Date: Fri, 27 Jan 2017 01:49:17 +0100 Subject: #955: win / bttery - implement power plugged --- psutil/_pswindows.py | 15 ++++++--------- 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", -- cgit v1.2.1