diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-26 20:00:33 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-26 20:00:33 +0100 |
commit | cc8d31c07378ed69b0cf7eaf4deef529c63ad177 (patch) | |
tree | 164e116f26480eeb7db55c6fe2276eed35f4acda | |
parent | 0684302e8e24dbebf536f4c8530475b21355f7c3 (diff) | |
parent | a120b1e94322b17bf5ae41bb885faf3d17b991cd (diff) | |
download | psutil-cc8d31c07378ed69b0cf7eaf4deef529c63ad177.tar.gz |
Merge branch '955-battery-sensors' of github.com:giampaolo/psutil into 955-battery-sensors
-rw-r--r-- | psutil/__init__.py | 2 | ||||
-rwxr-xr-x | psutil/tests/test_windows.py | 47 |
2 files changed, 49 insertions, 0 deletions
diff --git a/psutil/__init__.py b/psutil/__init__.py index 745d66fd..bfef0512 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -195,6 +195,8 @@ __author__ = "Giampaolo Rodola'" __version__ = "5.1.0" version_info = tuple([int(num) for num in __version__.split('.')]) AF_LINK = _psplatform.AF_LINK +POWER_TIME_UNLIMITED = _common.POWER_TIME_UNLIMITED +POWER_TIME_UNKNOWN = _common.POWER_TIME_UNKNOWN _TOTAL_PHYMEM = None _timer = getattr(time, 'monotonic', time.time) diff --git a/psutil/tests/test_windows.py b/psutil/tests/test_windows.py index 07f1d796..669adad0 100755 --- a/psutil/tests/test_windows.py +++ b/psutil/tests/test_windows.py @@ -159,6 +159,53 @@ class TestSystemAPIs(unittest.TestCase): # =================================================================== +# sensors_battery() +# =================================================================== + + +@unittest.skipUnless(WINDOWS, "WINDOWS only") +class TestSensorsBattery(unittest.TestCase): + + def test_percent(self): + w = wmi.WMI() + battery_psutil = psutil.sensors_battery() + 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) + + def test_emulate_no_battery(self): + with mock.patch("psutil._pswindows.cext.sensors_battery", + return_value=(0, 128, 0, 0)) as m: + self.assertIsNone(psutil.sensors_battery()) + assert m.called + + def test_emulate_power_connected(self): + with mock.patch("psutil._pswindows.cext.sensors_battery", + return_value=(1, 0, 0, 0)) as m: + self.assertEqual(psutil.sensors_battery().secsleft, + psutil.POWER_TIME_UNLIMITED) + assert m.called + + def test_emulate_power_charging(self): + with mock.patch("psutil._pswindows.cext.sensors_battery", + return_value=(0, 8, 0, 0)) as m: + self.assertEqual(psutil.sensors_battery().secsleft, + psutil.POWER_TIME_UNLIMITED) + assert m.called + + def test_emulate_secs_left_unknown(self): + with mock.patch("psutil._pswindows.cext.sensors_battery", + return_value=(0, 0, 0, -1)) as m: + self.assertEqual(psutil.sensors_battery().secsleft, + psutil.POWER_TIME_UNKNOWN) + assert m.called + + +# =================================================================== # Process APIs # =================================================================== |