File size: 1,826 Bytes
ba4b555
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""Unit tests for ConnectorHealthMonitor and ConnectorHealthStatus."""

from unittest.mock import patch

from cfi_connector_sdk.health import ConnectorHealthMonitor, ConnectorHealthStatus


def test_connector_health_status_defaults():
    status = ConnectorHealthStatus()
    assert status.status == "HEALTHY"
    assert status.broker_connected is True
    assert status.cert_days_remaining == 365
    assert status.last_ping_timestamp is not None


@patch.object(ConnectorHealthMonitor, "check_broker_ping", return_value=True)
@patch.object(ConnectorHealthMonitor, "check_cert_validity", return_value=365)
def test_health_monitor_report_healthy(mock_cert, mock_ping):
    monitor = ConnectorHealthMonitor(broker_host="127.0.0.1", broker_port=5672)
    report = monitor.get_health_report()

    assert report.status == "HEALTHY"
    assert report.broker_connected is True
    assert report.cert_days_remaining == 365


@patch.object(ConnectorHealthMonitor, "check_broker_ping", return_value=False)
@patch.object(ConnectorHealthMonitor, "check_cert_validity", return_value=365)
def test_health_monitor_report_unhealthy_broker(mock_cert, mock_ping):
    monitor = ConnectorHealthMonitor(broker_host="127.0.0.1", broker_port=5672)
    report = monitor.get_health_report()

    assert report.status == "UNHEALTHY"
    assert report.broker_connected is False


@patch.object(ConnectorHealthMonitor, "check_broker_ping", return_value=True)
@patch.object(ConnectorHealthMonitor, "check_cert_validity", return_value=3)
def test_health_monitor_report_degraded_cert(mock_cert, mock_ping):
    monitor = ConnectorHealthMonitor(broker_host="127.0.0.1", broker_port=5672)
    report = monitor.get_health_report()

    assert report.status == "DEGRADED"
    assert report.broker_connected is True
    assert report.cert_days_remaining == 3