summaryrefslogtreecommitdiff
path: root/psutil/tests
diff options
context:
space:
mode:
authorAmmar Askar <ammar_askar@hotmail.com>2019-04-11 05:32:39 -0400
committerGiampaolo Rodola <g.rodola@gmail.com>2019-04-11 11:32:39 +0200
commit921870d54091f399cd2b129db19530cc486b5700 (patch)
tree099e24514ed9f1ea9317609e6e1deed8e0d44eb4 /psutil/tests
parent05d51649ca709c6626d84cc710c2470d64829848 (diff)
downloadpsutil-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__.py1
-rwxr-xr-xpsutil/tests/test_linux.py15
-rwxr-xr-xpsutil/tests/test_memory_leaks.py5
-rwxr-xr-xpsutil/tests/test_system.py10
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"]