diff options
author | Ammar Askar <ammar_askar@hotmail.com> | 2019-04-11 05:32:39 -0400 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2019-04-11 11:32:39 +0200 |
commit | 921870d54091f399cd2b129db19530cc486b5700 (patch) | |
tree | 099e24514ed9f1ea9317609e6e1deed8e0d44eb4 /psutil/tests | |
parent | 05d51649ca709c6626d84cc710c2470d64829848 (diff) | |
download | psutil-921870d54091f399cd2b129db19530cc486b5700.tar.gz |
Implement getloadavg on Windows. Fixes #604 and #1484 (#1485) (patch by Ammar Askar)
Diffstat (limited to 'psutil/tests')
-rw-r--r-- | psutil/tests/__init__.py | 1 | ||||
-rwxr-xr-x | psutil/tests/test_linux.py | 15 | ||||
-rwxr-xr-x | psutil/tests/test_memory_leaks.py | 5 | ||||
-rwxr-xr-x | psutil/tests/test_system.py | 10 |
4 files changed, 31 insertions, 0 deletions
diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py index 3aebbcbd..79681719 100644 --- a/psutil/tests/__init__.py +++ b/psutil/tests/__init__.py @@ -159,6 +159,7 @@ HERE = os.path.abspath(os.path.dirname(__file__)) HAS_CONNECTIONS_UNIX = POSIX and not SUNOS HAS_CPU_AFFINITY = hasattr(psutil.Process, "cpu_affinity") HAS_CPU_FREQ = hasattr(psutil, "cpu_freq") +HAS_GETLOADAVG = hasattr(psutil, "getloadavg") HAS_ENVIRON = hasattr(psutil.Process, "environ") HAS_IONICE = hasattr(psutil.Process, "ionice") HAS_MEMORY_MAPS = hasattr(psutil.Process, "memory_maps") diff --git a/psutil/tests/test_linux.py b/psutil/tests/test_linux.py index 85cf33c4..e8745a75 100755 --- a/psutil/tests/test_linux.py +++ b/psutil/tests/test_linux.py @@ -29,6 +29,7 @@ from psutil._compat import u from psutil.tests import call_until from psutil.tests import HAS_BATTERY from psutil.tests import HAS_CPU_FREQ +from psutil.tests import HAS_GETLOADAVG from psutil.tests import HAS_RLIMIT from psutil.tests import MEMORY_TOLERANCE from psutil.tests import mock @@ -866,6 +867,20 @@ class TestSystemCPUStats(unittest.TestCase): self.assertAlmostEqual(vmstat_value, psutil_value, delta=500) +@unittest.skipIf(not LINUX, "LINUX only") +class TestLoadAvg(unittest.TestCase): + + @unittest.skipIf(not HAS_GETLOADAVG, "not supported") + def test_getloadavg(self): + psutil_value = psutil.getloadavg() + with open("/proc/loadavg", "r") as f: + proc_value = f.read().split() + + self.assertAlmostEqual(float(proc_value[0]), psutil_value[0], delta=1) + self.assertAlmostEqual(float(proc_value[1]), psutil_value[1], delta=1) + self.assertAlmostEqual(float(proc_value[2]), psutil_value[2], delta=1) + + # ===================================================================== # --- system network # ===================================================================== diff --git a/psutil/tests/test_memory_leaks.py b/psutil/tests/test_memory_leaks.py index 170a1d0c..dde50a57 100755 --- a/psutil/tests/test_memory_leaks.py +++ b/psutil/tests/test_memory_leaks.py @@ -36,6 +36,7 @@ from psutil.tests import create_sockets from psutil.tests import get_test_subprocess from psutil.tests import HAS_CPU_AFFINITY from psutil.tests import HAS_CPU_FREQ +from psutil.tests import HAS_GETLOADAVG from psutil.tests import HAS_ENVIRON from psutil.tests import HAS_IONICE from psutil.tests import HAS_MEMORY_MAPS @@ -474,6 +475,10 @@ class TestModuleFunctionsLeaks(TestMemLeak): def test_cpu_freq(self): self.execute(psutil.cpu_freq) + @unittest.skipIf(not HAS_GETLOADAVG, "not supported") + def test_getloadavg(self): + self.execute(psutil.getloadavg) + # --- mem def test_virtual_memory(self): diff --git a/psutil/tests/test_system.py b/psutil/tests/test_system.py index 75e65b0f..c4c503a2 100755 --- a/psutil/tests/test_system.py +++ b/psutil/tests/test_system.py @@ -38,6 +38,7 @@ from psutil.tests import enum from psutil.tests import get_test_subprocess from psutil.tests import HAS_BATTERY from psutil.tests import HAS_CPU_FREQ +from psutil.tests import HAS_GETLOADAVG from psutil.tests import HAS_NET_IO_COUNTERS from psutil.tests import HAS_SENSORS_BATTERY from psutil.tests import HAS_SENSORS_FANS @@ -778,6 +779,15 @@ class TestSystemAPIs(unittest.TestCase): if LINUX: self.assertEqual(len(ls), psutil.cpu_count()) + @unittest.skipIf(not HAS_GETLOADAVG, "not supported") + def test_getloadavg(self): + loadavg = psutil.getloadavg() + assert len(loadavg) == 3 + + for load in loadavg: + self.assertIsInstance(load, float) + self.assertGreaterEqual(load, 0.0) + def test_os_constants(self): names = ["POSIX", "WINDOWS", "LINUX", "MACOS", "FREEBSD", "OPENBSD", "NETBSD", "BSD", "SUNOS"] |