Skip to content

Commit 37cce29

Browse files
authored
Revert requirements for psutil and allow for connections / net_connections based on psutil version (#55)
* Revert requirements for psutil and allow for connections / net_connections based on psutil version * Added changelog entry
1 parent cb4f180 commit 37cce29

File tree

3 files changed

+35
-16
lines changed

3 files changed

+35
-16
lines changed

changelog/55.improvement.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Revert requirements for psutil and allow for connections / net_connections based on psutil version

requirements/base.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pytest>=7.4.0
22
attrs>=22.1.0
3-
psutil>=6.0.0
3+
psutil>=5.0.0
44
pytest-helpers-namespace
55
pytest-skip-markers

src/pytestshellutils/shell.py

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,21 +1278,39 @@ def _terminate_processes_matching_listen_ports(self) -> None:
12781278
# If any processes were not terminated and are listening on the ports
12791279
# we have set on listen_ports, terminate those processes.
12801280
found_processes = []
1281-
for process in psutil.process_iter(["net_connections"]):
1282-
try:
1283-
for connection in process.net_connections():
1284-
if connection.status != psutil.CONN_LISTEN:
1285-
# We only care about listening services
1286-
continue
1287-
if connection.laddr.port in self.check_ports:
1288-
found_processes.append(process)
1289-
# We already found one connection, no need to check the others
1290-
break
1291-
except psutil.AccessDenied: # pragma: no cover
1292-
# We've been denied access to this process net_connections. Carry on.
1293-
continue
1294-
except psutil.ZombieProcess:
1295-
continue
1281+
psutil_majorver, _, _ = psutil.version_info
1282+
if psutil_majorver < 6:
1283+
for process in psutil.process_iter(["connections"]):
1284+
try:
1285+
for connection in process.connections():
1286+
if connection.status != psutil.CONN_LISTEN:
1287+
# We only care about listening services
1288+
continue
1289+
if connection.laddr.port in self.check_ports:
1290+
found_processes.append(process)
1291+
# We already found one connection, no need to check the others
1292+
break
1293+
except psutil.AccessDenied: # pragma: no cover
1294+
# We've been denied access to this process connections. Carry on.
1295+
continue
1296+
except psutil.ZombieProcess:
1297+
continue
1298+
else:
1299+
for process in psutil.process_iter(["net_connections"]):
1300+
try:
1301+
for connection in process.net_connections():
1302+
if connection.status != psutil.CONN_LISTEN:
1303+
# We only care about listening services
1304+
continue
1305+
if connection.laddr.port in self.check_ports:
1306+
found_processes.append(process)
1307+
# We already found one connection, no need to check the others
1308+
break
1309+
except psutil.AccessDenied: # pragma: no cover
1310+
# We've been denied access to this process net_connections. Carry on.
1311+
continue
1312+
except psutil.ZombieProcess:
1313+
continue
12961314
if found_processes:
12971315
log.debug(
12981316
"The following processes were found listening on ports %s: %s",

0 commit comments

Comments
 (0)