mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 14:21:53 +00:00

## Summary Follow-up on https://github.com/astral-sh/ruff/pull/7528 that improves detections of mis-usages of policy in `paramiko`. First commit applies the same fix as in `bandit` (https://github.com/PyCQA/bandit/pull/1064), as `paramiko` supports passing both a class and a class instance for the policy in `set_missing_host_key_policy` (8e389c7766/paramiko/client.py (L171-L191)
). Second commit improve the detection of `paramiko` import paths that trigger a violation, as `AutoAddPolicy`, `WarningPolicy` and `SSHClient` are not only exposed in `paramiko.client`, but also in `paramiko` (66117732de/paramiko/__init__.py (L121-L164)
). ## Test Plan Snapshot tests.
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
import paramiko
|
|
from paramiko import client
|
|
from paramiko.client import AutoAddPolicy, WarningPolicy
|
|
|
|
ssh_client = client.SSHClient()
|
|
ssh_client_from_paramiko = paramiko.SSHClient()
|
|
|
|
# OK
|
|
ssh_client.set_missing_host_key_policy(policy=foo)
|
|
ssh_client.set_missing_host_key_policy(client.MissingHostKeyPolicy)
|
|
ssh_client.set_missing_host_key_policy()
|
|
ssh_client.set_missing_host_key_policy(foo)
|
|
|
|
# Errors
|
|
ssh_client.set_missing_host_key_policy(client.AutoAddPolicy)
|
|
ssh_client.set_missing_host_key_policy(client.WarningPolicy)
|
|
ssh_client.set_missing_host_key_policy(client.AutoAddPolicy())
|
|
ssh_client.set_missing_host_key_policy(AutoAddPolicy)
|
|
ssh_client.set_missing_host_key_policy(policy=client.AutoAddPolicy)
|
|
ssh_client.set_missing_host_key_policy(policy=client.WarningPolicy)
|
|
ssh_client.set_missing_host_key_policy(policy=WarningPolicy)
|
|
ssh_client_from_paramiko.set_missing_host_key_policy(paramiko.AutoAddPolicy)
|
|
|
|
# Unrelated
|
|
set_missing_host_key_policy(client.AutoAddPolicy)
|
|
foo.set_missing_host_key_policy(client.AutoAddPolicy)
|
|
ssh_client = 1
|
|
ssh_client.set_missing_host_key_policy(client.AutoAddPolicy)
|