56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
"""Tests for RDG client workstation lookup."""
|
|
|
|
from datetime import datetime, timezone
|
|
|
|
from app.models import Host
|
|
from app.services.rdg_client_host import find_windows_host_by_ipv4, resolve_client_workstation
|
|
|
|
|
|
def test_find_windows_host_by_ipv4(db_session):
|
|
host = Host(
|
|
hostname="Andrisonova-PC",
|
|
os_family="windows",
|
|
product="rdp-login-monitor",
|
|
ipv4="192.168.160.113",
|
|
)
|
|
db_session.add(host)
|
|
db_session.commit()
|
|
|
|
found = find_windows_host_by_ipv4(db_session, "192.168.160.113")
|
|
assert found is not None
|
|
assert found.hostname == "Andrisonova-PC"
|
|
|
|
|
|
def test_resolve_client_workstation_from_event(db_session):
|
|
from app.models import Event
|
|
|
|
ws = Host(
|
|
hostname="Andrisonova-PC",
|
|
os_family="windows",
|
|
product="rdp-login-monitor",
|
|
ipv4="192.168.160.113",
|
|
)
|
|
gw = Host(hostname="K6A-DC3", os_family="windows", product="rdp-login-monitor", ipv4="192.168.160.40")
|
|
db_session.add_all([ws, gw])
|
|
db_session.commit()
|
|
|
|
event = Event(
|
|
event_id="ev-1",
|
|
host_id=gw.id,
|
|
occurred_at=datetime(2026, 6, 20, tzinfo=timezone.utc),
|
|
received_at=datetime(2026, 6, 20, tzinfo=timezone.utc),
|
|
category="auth",
|
|
type="rdg.connection.disconnected",
|
|
severity="info",
|
|
title="303",
|
|
summary="",
|
|
payload={},
|
|
details={"user": r"B26\user", "internal_ip": "192.168.160.113", "rdg_flap": True},
|
|
)
|
|
db_session.add(event)
|
|
db_session.commit()
|
|
|
|
client = resolve_client_workstation(db_session, event)
|
|
assert client.id == ws.id
|
|
assert client.hostname == "Andrisonova-PC"
|