Skip to content

Commit d5243bc

Browse files
committed
Refactor test case
1 parent a01dd37 commit d5243bc

File tree

1 file changed

+68
-5
lines changed

1 file changed

+68
-5
lines changed

opentelemetry-sdk/tests/metrics/integration_test/test_console_exporter.py

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from os import devnull
15+
from io import StringIO
16+
from json import loads
17+
from time import sleep
1618
from unittest import TestCase
1719

1820
from opentelemetry import metrics
@@ -27,12 +29,73 @@ class TestConsoleExporter(TestCase):
2729
def test_console_exporter(self):
2830

2931
try:
30-
exporter = ConsoleMetricExporter(out=open(devnull, "w"))
31-
reader = PeriodicExportingMetricReader(exporter)
32+
output = StringIO()
33+
exporter = ConsoleMetricExporter(out=output)
34+
reader = PeriodicExportingMetricReader(
35+
exporter, export_interval_millis=100
36+
)
3237
provider = MeterProvider(metric_readers=[reader])
3338
metrics.set_meter_provider(provider)
3439
meter = metrics.get_meter(__name__)
35-
counter = meter.create_counter("test")
36-
counter.add(1)
40+
counter = meter.create_counter(
41+
"name", description="description", unit="unit"
42+
)
43+
counter.add(1, attributes={"a": "b"})
44+
sleep(0.3)
45+
provider.shutdown()
46+
sleep(0.3)
47+
output.seek(0)
48+
result = output.readlines()
3749
except Exception as error:
3850
self.fail(f"Unexpected exception {error} raised")
51+
52+
self.assertGreater(len(result), 0)
53+
result_0 = loads(result[0])
54+
55+
self.assertEqual(
56+
result_0["resource_metrics"][0]["scope_metrics"][0]["scope"][
57+
"name"
58+
],
59+
"test_console_exporter",
60+
)
61+
self.assertEqual(
62+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
63+
"name"
64+
],
65+
"name",
66+
)
67+
self.assertEqual(
68+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
69+
"description"
70+
],
71+
"description",
72+
)
73+
self.assertEqual(
74+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
75+
"unit"
76+
],
77+
"unit",
78+
)
79+
self.assertEqual(
80+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
81+
"data"
82+
]["data_points"][0]["attributes"],
83+
{"a": "b"},
84+
)
85+
self.assertEqual(
86+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
87+
"data"
88+
]["data_points"][0]["value"],
89+
1,
90+
)
91+
self.assertEqual(
92+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
93+
"data"
94+
]["aggregation_temporality"],
95+
2,
96+
)
97+
self.assertTrue(
98+
result_0["resource_metrics"][0]["scope_metrics"][0]["metrics"][0][
99+
"data"
100+
]["is_monotonic"]
101+
)

0 commit comments

Comments
 (0)