Skip to content

Commit 89eac06

Browse files
committed
refactor tests + make them more robust
1 parent c458816 commit 89eac06

6 files changed

+29
-31
lines changed

psutil/_pslinux.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -2031,11 +2031,7 @@ def memory_full_info(self):
20312031
if HAS_PROC_SMAPS_ROLLUP: # faster
20322032
try:
20332033
uss, pss, swap = self._parse_smaps_rollup()
2034-
except (ProcessLookupError, FileNotFoundError) as err:
2035-
debug(
2036-
"ignore %r for pid %s and retry using /proc/pid/smaps"
2037-
% (err, self.pid)
2038-
)
2034+
except (ProcessLookupError, FileNotFoundError):
20392035
uss, pss, swap = self._parse_smaps()
20402036
else:
20412037
uss, pss, swap = self._parse_smaps()

psutil/tests/test_connections.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ def setUp(self):
5555
# Process opens a UNIX socket to /var/log/run.
5656
return
5757
cons = thisproc.connections(kind='all')
58-
assert not cons, cons
58+
self.assertEqual(cons, [])
5959

6060
def tearDown(self):
6161
# Make sure we closed all resources.
6262
# Some BSDs open a UNIX socket to /var/log/run.
6363
if NETBSD or FREEBSD or (MACOS and not PY3):
6464
return
6565
cons = thisproc.connections(kind='all')
66-
assert not cons, cons
66+
self.assertEqual(cons, [])
6767

6868
def compare_procsys_connections(self, pid, proc_cons, kind='all'):
6969
"""Given a process PID and its list of connections compare
@@ -156,46 +156,46 @@ def test_tcp_v4(self):
156156
addr = ("127.0.0.1", 0)
157157
with closing(bind_socket(AF_INET, SOCK_STREAM, addr=addr)) as sock:
158158
conn = self.check_socket(sock)
159-
assert not conn.raddr
159+
self.assertEqual(conn.raddr, ())
160160
self.assertEqual(conn.status, psutil.CONN_LISTEN)
161161

162162
@unittest.skipIf(not supports_ipv6(), "IPv6 not supported")
163163
def test_tcp_v6(self):
164164
addr = ("::1", 0)
165165
with closing(bind_socket(AF_INET6, SOCK_STREAM, addr=addr)) as sock:
166166
conn = self.check_socket(sock)
167-
assert not conn.raddr
167+
self.assertEqual(conn.raddr, ())
168168
self.assertEqual(conn.status, psutil.CONN_LISTEN)
169169

170170
def test_udp_v4(self):
171171
addr = ("127.0.0.1", 0)
172172
with closing(bind_socket(AF_INET, SOCK_DGRAM, addr=addr)) as sock:
173173
conn = self.check_socket(sock)
174-
assert not conn.raddr
174+
self.assertEqual(conn.raddr, ())
175175
self.assertEqual(conn.status, psutil.CONN_NONE)
176176

177177
@unittest.skipIf(not supports_ipv6(), "IPv6 not supported")
178178
def test_udp_v6(self):
179179
addr = ("::1", 0)
180180
with closing(bind_socket(AF_INET6, SOCK_DGRAM, addr=addr)) as sock:
181181
conn = self.check_socket(sock)
182-
assert not conn.raddr
182+
self.assertEqual(conn.raddr, ())
183183
self.assertEqual(conn.status, psutil.CONN_NONE)
184184

185185
@unittest.skipIf(not POSIX, 'POSIX only')
186186
def test_unix_tcp(self):
187187
testfn = self.get_testfn()
188188
with closing(bind_unix_socket(testfn, type=SOCK_STREAM)) as sock:
189189
conn = self.check_socket(sock)
190-
assert not conn.raddr
190+
self.assertEqual(conn.raddr, "")
191191
self.assertEqual(conn.status, psutil.CONN_NONE)
192192

193193
@unittest.skipIf(not POSIX, 'POSIX only')
194194
def test_unix_udp(self):
195195
testfn = self.get_testfn()
196196
with closing(bind_unix_socket(testfn, type=SOCK_STREAM)) as sock:
197197
conn = self.check_socket(sock)
198-
assert not conn.raddr
198+
self.assertEqual(conn.raddr, "")
199199
self.assertEqual(conn.status, psutil.CONN_NONE)
200200

201201

@@ -210,7 +210,7 @@ class TestConnectedSocket(ConnectionTestCase):
210210
@unittest.skipIf(SUNOS, "unreliable on SUONS")
211211
def test_tcp(self):
212212
addr = ("127.0.0.1", 0)
213-
assert not thisproc.connections(kind='tcp4')
213+
self.assertEqual(thisproc.connections(kind='tcp4'), [])
214214
server, client = tcp_socketpair(AF_INET, addr=addr)
215215
try:
216216
cons = thisproc.connections(kind='tcp4')
@@ -233,8 +233,8 @@ def test_unix(self):
233233
server, client = unix_socketpair(testfn)
234234
try:
235235
cons = thisproc.connections(kind='unix')
236-
assert not (cons[0].laddr and cons[0].raddr)
237-
assert not (cons[1].laddr and cons[1].raddr)
236+
assert not (cons[0].laddr and cons[0].raddr), cons
237+
assert not (cons[1].laddr and cons[1].raddr), cons
238238
if NETBSD or FREEBSD:
239239
# On NetBSD creating a UNIX socket will cause
240240
# a UNIX connection to /var/run/log.
@@ -313,9 +313,9 @@ def check_conn(proc, conn, family, type, laddr, raddr, status, kinds):
313313
for kind in all_kinds:
314314
cons = proc.connections(kind=kind)
315315
if kind in kinds:
316-
assert cons
316+
self.assertNotEqual(cons, [])
317317
else:
318-
assert not cons, cons
318+
self.assertEqual(cons, [])
319319
# compare against system-wide connections
320320
# XXX Solaris can't retrieve system-wide UNIX
321321
# sockets.

psutil/tests/test_contracts.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,8 @@ def proc_info(pid):
371371

372372
def check_exception(exc, proc, name, ppid):
373373
tcase.assertEqual(exc.pid, pid)
374-
tcase.assertEqual(exc.name, name)
374+
if exc.name is not None:
375+
tcase.assertEqual(exc.name, name)
375376
if isinstance(exc, psutil.ZombieProcess):
376377
tcase.assertProcessZombie(proc)
377378
if exc.ppid is not None:
@@ -552,7 +553,7 @@ def username(self, ret, info):
552553

553554
def status(self, ret, info):
554555
self.assertIsInstance(ret, str)
555-
assert ret
556+
assert ret, ret
556557
self.assertNotEqual(ret, '?') # XXX
557558
self.assertIn(ret, VALID_PROC_STATUSES)
558559

@@ -706,7 +707,7 @@ def is_running(self, ret, info):
706707

707708
def cpu_affinity(self, ret, info):
708709
self.assertIsInstance(ret, list)
709-
assert ret != [], ret
710+
self.assertNotEqual(ret, [])
710711
cpus = list(range(psutil.cpu_count()))
711712
for n in ret:
712713
self.assertIsInstance(n, int)

psutil/tests/test_linux.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ def path_exists_mock(path):
845845
with mock.patch("os.path.exists", side_effect=path_exists_mock):
846846
reload_module(psutil._pslinux)
847847
ret = psutil.cpu_freq()
848-
assert ret
848+
assert ret, ret
849849
self.assertEqual(ret.max, 0.0)
850850
self.assertEqual(ret.min, 0.0)
851851
for freq in psutil.cpu_freq(percpu=True):
@@ -1972,8 +1972,7 @@ def test_open_files_file_gone(self):
19721972
'psutil._pslinux.os.readlink',
19731973
side_effect=OSError(errno.ENOENT, ""),
19741974
) as m:
1975-
files = p.open_files()
1976-
assert not files
1975+
self.assertEqual(p.open_files(), [])
19771976
assert m.called
19781977
# also simulate the case where os.readlink() returns EINVAL
19791978
# in which case psutil is supposed to 'continue'
@@ -1997,8 +1996,7 @@ def test_open_files_fd_gone(self):
19971996
with mock.patch(
19981997
patch_point, side_effect=IOError(errno.ENOENT, "")
19991998
) as m:
2000-
files = p.open_files()
2001-
assert not files
1999+
self.assertEqual(p.open_files(), [])
20022000
assert m.called
20032001

20042002
def test_open_files_enametoolong(self):
@@ -2015,8 +2013,7 @@ def test_open_files_enametoolong(self):
20152013
patch_point, side_effect=OSError(errno.ENAMETOOLONG, "")
20162014
) as m:
20172015
with mock.patch("psutil._pslinux.debug"):
2018-
files = p.open_files()
2019-
assert not files
2016+
self.assertEqual(p.open_files(), [])
20202017
assert m.called
20212018

20222019
# --- mocked tests
@@ -2250,7 +2247,7 @@ def test_connections_enametoolong(self):
22502247
) as m:
22512248
p = psutil.Process()
22522249
with mock.patch("psutil._pslinux.debug"):
2253-
assert not p.connections()
2250+
self.assertEqual(p.connections(), [])
22542251
assert m.called
22552252

22562253

psutil/tests/test_process.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,11 @@ class TestProcess(PsutilTestCase):
7878

7979
def spawn_psproc(self, *args, **kwargs):
8080
sproc = self.spawn_testproc(*args, **kwargs)
81-
return psutil.Process(sproc.pid)
81+
try:
82+
return psutil.Process(sproc.pid)
83+
except psutil.NoSuchProcess:
84+
self.assertPidGone(sproc.pid)
85+
raise
8286

8387
# ---
8488

psutil/tests/test_testutils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def tcp_tcp_socketpair(self):
318318
def test_unix_socketpair(self):
319319
p = psutil.Process()
320320
num_fds = p.num_fds()
321-
assert not p.connections(kind='unix')
321+
self.assertEqual(p.connections(kind='unix'), [])
322322
name = self.get_testfn()
323323
server, client = unix_socketpair(name)
324324
try:

0 commit comments

Comments
 (0)