Skip to content

Commit ced12ac

Browse files
author
sroda
committed
Move the metrics basic test to TestBase class
1 parent 0f9cfdd commit ced12ac

File tree

1 file changed

+58
-1
lines changed
  • tests/opentelemetry-test-utils/src/opentelemetry/test

1 file changed

+58
-1
lines changed

tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
from opentelemetry import metrics as metrics_api
2121
from opentelemetry import trace as trace_api
2222
from opentelemetry.sdk.metrics import MeterProvider
23-
from opentelemetry.sdk.metrics.export import InMemoryMetricReader, MetricReader
23+
from opentelemetry.sdk.metrics.export import (InMemoryMetricReader, MetricReader, HistogramDataPoint,
24+
NumberDataPoint)
25+
2426
from opentelemetry.sdk.trace import TracerProvider, export
2527
from opentelemetry.sdk.trace.export.in_memory_span_exporter import (
2628
InMemorySpanExporter,
@@ -85,6 +87,61 @@ def sorted_spans(self, spans): # pylint: disable=R0201
8587
reverse=True,
8688
)
8789

90+
def sorted_metrics(self, metrics):
91+
"""
92+
Sorts metrics by metric name.
93+
"""
94+
return sorted(
95+
metrics,
96+
key=lambda m: m.name,
97+
)
98+
99+
def get_sorted_metrics(self):
100+
resource_metrics = (
101+
self.memory_metrics_reader.get_metrics_data().resource_metrics
102+
)
103+
for metrics in resource_metrics:
104+
for scope_metrics in metrics.scope_metrics:
105+
all_metrics = list(scope_metrics.metrics)
106+
return self.sorted_metrics(all_metrics)
107+
108+
def assert_metric_expected(
109+
self, metric, expected_value, expected_attributes
110+
):
111+
data_point = next(iter(metric.data.data_points))
112+
113+
if isinstance(data_point, HistogramDataPoint):
114+
self.assertEqual(
115+
data_point.sum,
116+
expected_value,
117+
)
118+
elif isinstance(data_point, NumberDataPoint):
119+
self.assertEqual(
120+
data_point.value,
121+
expected_value,
122+
)
123+
124+
self.assertDictEqual(
125+
expected_attributes,
126+
dict(data_point.attributes),
127+
)
128+
129+
def assert_duration_metric_expected(
130+
self, metric, duration_estimated, expected_attributes, est_delta=200
131+
):
132+
data_point = next(iter(metric.data.data_points))
133+
134+
self.assertAlmostEqual(
135+
data_point.sum,
136+
duration_estimated,
137+
delta=est_delta,
138+
)
139+
140+
self.assertDictEqual(
141+
expected_attributes,
142+
dict(data_point.attributes),
143+
)
144+
88145
@staticmethod
89146
def create_tracer_provider(**kwargs):
90147
"""Helper to create a configured tracer provider.

0 commit comments

Comments
 (0)