Skip to content

Commit

Permalink
Add test code
Browse files Browse the repository at this point in the history
  • Loading branch information
Dawnpool committed Mar 1, 2025
1 parent b15bc24 commit d5201d4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
4 changes: 4 additions & 0 deletions providers/sftp/src/airflow/providers/sftp/hooks/sftp.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@ def get_managed_conn(self) -> Generator[SFTPClient, None, None]:
self._ssh_conn.close()
self._ssh_conn = None

def get_conn_count(self) -> int:
"""Get the number of open connections."""
return self._conn_count

def describe_directory(self, path: str) -> dict[str, dict[str, str | int | None]]:
"""
Get file information in a directory on the remote system.
Expand Down
10 changes: 8 additions & 2 deletions providers/sftp/tests/unit/sftp/hooks/test_sftp.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,14 @@ def test_close_conn(self):
assert self.hook.conn is None

def test_get_managed_conn(self):
with self.hook.get_managed_conn() as conn:
assert isinstance(conn, paramiko.SFTPClient)
with self.hook.get_managed_conn() as conn1:
assert isinstance(conn1, paramiko.SFTPClient)
with self.hook.get_managed_conn() as conn2:
assert conn1 == conn2
assert self.hook.get_conn_count() == 2
assert self.hook.get_conn_count() == 1
assert self.hook.get_conn_count() == 0
assert self.hook.conn is None

@patch("airflow.providers.ssh.hooks.ssh.SSHHook.get_conn")
def test_get_close_conn(self, mock_get_conn):
Expand Down

0 comments on commit d5201d4

Please sign in to comment.