mirror of
https://github.com/hansjone/netx.git
synced 2026-10-10 13:50:44 +08:00
Reuse SSH for WebCRT SFTP and fix folder navigation UX.
Open SFTP on the live session transport after SSH connect, pass the target path on every list refresh, and use folder/file icons in the browser panel. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
d87bdf4be1
commit
499b4cc2a1
10 changed files with 525 additions and 131 deletions
|
|
@ -734,6 +734,28 @@ class WebcrtServiceTests(unittest.TestCase):
|
|||
# Direct SSH is allowed (no raise).
|
||||
_require_ssh_direct({"protocol": "ssh", "hop_enabled": False}, {"protocol": "ssh"})
|
||||
|
||||
@patch.object(svc, "_audit")
|
||||
def test_find_ssh_session_for_ne_prefers_attached(self, _mock_audit: MagicMock) -> None:
|
||||
conn = _FakeConn()
|
||||
sess = svc.WebcrtSession(
|
||||
session_id="sftpne",
|
||||
ne_id="ne-sftp",
|
||||
ne_name="lab",
|
||||
ne_ip="1.2.3.4",
|
||||
protocol="ssh",
|
||||
cols=80,
|
||||
rows=24,
|
||||
conn=conn, # type: ignore[arg-type]
|
||||
)
|
||||
sess.state = "ready"
|
||||
sess.attached = True
|
||||
with svc._sessions_lock:
|
||||
svc._sessions["sftpne"] = sess
|
||||
found = svc.find_ssh_session_for_ne("ne-sftp")
|
||||
self.assertIs(found, sess)
|
||||
self.assertIsNone(svc.find_ssh_session_for_ne("other"))
|
||||
svc.close_session("sftpne", reason="test")
|
||||
|
||||
@patch.object(svc, "_audit")
|
||||
def test_reattach_clears_detach_deadline(self, _mock_audit: MagicMock) -> None:
|
||||
conn = _FakeConn()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue