Files
Nexus/tests/test_rdp_config.py
T
Nexus Agent dabfc128b3 feat: 浏览器 RDP、推送提示音与子机指标等多项功能
- 3389远程页 + guacd 侧车 WebSocket 桥(无 RDP 会话审计)
- 文件推送完成独立提示音,至少一台成功即播放
- 子机列表展开 CPU/内存/磁盘 sparkline 与指标采样落库
- 终端全量服务器列表、连接中状态;告警 Telegram 公网 IP
- SSH 密钥凭据 UI 简化;子机搜索未设路径筛选

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 01:37:32 +08:00

56 lines
1.7 KiB
Python

"""RDP browser (guacd) configuration helpers."""
from server.domain.models import Server
from server.infrastructure.database.crypto import encrypt_value
from server.utils.rdp_config import (
apply_rdp_payload,
build_guacamole_connect_string,
get_rdp_config,
get_rdp_password_plain,
)
def test_get_rdp_config_defaults():
server = Server(name="win", domain="10.0.0.1", port=22, username="root")
cfg = get_rdp_config(server)
assert cfg.enabled is False
assert cfg.port == 3389
assert cfg.username == ""
assert cfg.password_set is False
def test_apply_rdp_payload_merges_extra_attrs():
payload = {
"rdp_enabled": True,
"rdp_port": 3390,
"rdp_username": "Administrator",
"rdp_password": "Secret123",
}
apply_rdp_payload(payload, existing_extra={"files_elevation": "auto_sudo"})
assert payload["extra_attrs"]["rdp_enabled"] is True
assert payload["extra_attrs"]["rdp_port"] == 3390
assert payload["extra_attrs"]["rdp_username"] == "Administrator"
assert payload["extra_attrs"]["rdp_password"]
assert payload["extra_attrs"]["files_elevation"] == "auto_sudo"
assert "rdp_password" not in payload
def test_get_rdp_password_plain_roundtrip():
server = Server(
name="win",
domain="10.0.0.2",
port=22,
username="root",
extra_attrs={"rdp_password": encrypt_value("pw")},
)
assert get_rdp_password_plain(server) == "pw"
def test_build_guacamole_connect_string():
s = build_guacamole_connect_string("192.168.1.10", 3389, "Admin", "pw")
assert "hostname=192.168.1.10" in s
assert "port=3389" in s
assert "username=Admin" in s
assert "password=pw" in s
assert "ignore-cert=true" in s