Skip to content

Commit 65792f3

Browse files
committed
test
1 parent aaff69b commit 65792f3

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

src/oci-monitoring-mcp-server/oracle/oci_monitoring_mcp_server/tests/test_metric_tools.py

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
https://oss.oracle.com/licenses/upl.
55
"""
66

7-
from unittest.mock import AsyncMock, MagicMock, Mock, create_autospec, patch
7+
from unittest.mock import AsyncMock, MagicMock, Mock, patch
88

99
import oci
1010
import pytest
11+
from oracle.oci_monitoring_mcp_server.metrics.models import Metric
1112
from oracle.oci_monitoring_mcp_server.metrics.tools import MonitoringMetricsTools
1213

1314

@@ -23,9 +24,10 @@ def mock_context():
2324

2425
class TestMetricTools:
2526
@pytest.mark.asyncio
26-
@patch.object(MonitoringMetricsTools, "get_monitoring_client")
2727
async def test_get_compute_metrics(self, mock_context):
28-
with patch("oci.monitoring.MonitoringClient") as mock_oci_monitoring_client:
28+
with patch.object(
29+
MonitoringMetricsTools, "get_monitoring_client"
30+
) as mock_oci_monitoring_client:
2931
metric = oci.monitoring.models.MetricData(
3032
namespace="123",
3133
resource_group=None,
@@ -37,7 +39,8 @@ async def test_get_compute_metrics(self, mock_context):
3739
],
3840
)
3941

40-
mock_list_response = create_autospec(oci.response.Response)
42+
mock_oci_monitoring_client.return_value = Mock()
43+
mock_list_response = Mock()
4144
mock_list_response.data = [metric]
4245
mock_oci_monitoring_client.return_value.summarize_metrics_data.return_value = (
4346
mock_list_response
@@ -60,3 +63,39 @@ async def test_get_compute_metrics(self, mock_context):
6063
assert len(result[0]["datapoints"]) == 2
6164
assert result[0]["datapoints"][0]["timestamp"] == "2023-01-01T00:00:00Z"
6265
assert result[0]["datapoints"][0]["value"] == pytest.approx(42.0)
66+
67+
@pytest.mark.asyncio
68+
async def test_get_metrics_data(self, mock_context):
69+
with patch.object(
70+
MonitoringMetricsTools, "get_monitoring_client"
71+
) as mock_oci_monitoring_client:
72+
metric = oci.monitoring.models.MetricData(
73+
namespace="123",
74+
resource_group=None,
75+
dimensions={"resourceId": "instance1"},
76+
compartment_id="compartment1",
77+
aggregated_datapoints=[
78+
MagicMock(timestamp="2023-01-01T00:00:00Z", value=42.0),
79+
MagicMock(timestamp="2023-01-01T00:01:00Z", value=43.5),
80+
],
81+
)
82+
83+
mock_oci_monitoring_client.return_value = Mock()
84+
mock_list_response = Mock()
85+
mock_list_response.data = [metric]
86+
mock_oci_monitoring_client.return_value.summarize_metrics_data.return_value = (
87+
mock_list_response
88+
)
89+
90+
metrics_tools = MonitoringMetricsTools()
91+
92+
result = await metrics_tools.get_metrics_data(
93+
mock_context,
94+
compartment_id="compartment1",
95+
start_time="2023-01-01T00:00:00Z",
96+
end_time="2023-01-01T00:00:00Z",
97+
)
98+
99+
assert result is not None
100+
for metric in result:
101+
assert isinstance(metric, Metric)

0 commit comments

Comments
 (0)