Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 176aa55

Browse files
committed
fix tests
1 parent af6d003 commit 176aa55

File tree

5 files changed

+99
-35
lines changed

5 files changed

+99
-35
lines changed

ext/opentelemetry-ext-opencensusexporter/tests/test_otcollector_metrics_exporter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
Counter,
2626
MeterProvider,
2727
ValueRecorder,
28-
get_labels_as_key,
28+
get_dict_as_key,
2929
)
3030
from opentelemetry.sdk.metrics.export import (
3131
MetricRecord,
@@ -42,7 +42,7 @@ def setUpClass(cls):
4242
metrics.set_meter_provider(MeterProvider())
4343
cls._meter = metrics.get_meter(__name__)
4444
cls._labels = {"environment": "staging"}
45-
cls._key_labels = get_labels_as_key(cls._labels)
45+
cls._key_labels = get_dict_as_key(cls._labels)
4646

4747
def test_constructor(self):
4848
mock_get_node = mock.Mock()
@@ -119,7 +119,7 @@ def test_export(self):
119119
client=mock_client, host_name=host_name
120120
)
121121
test_metric = self._meter.create_metric(
122-
"testname", "testdesc", "unit", int, Counter, ["environment"]
122+
"testname", "testdesc", "unit", int, Counter,
123123
)
124124
record = MetricRecord(
125125
test_metric, self._key_labels, aggregate.SumAggregator(),
@@ -142,7 +142,7 @@ def test_export(self):
142142

143143
def test_translate_to_collector(self):
144144
test_metric = self._meter.create_metric(
145-
"testname", "testdesc", "unit", int, Counter, ["environment"]
145+
"testname", "testdesc", "unit", int, Counter,
146146
)
147147
aggregator = aggregate.SumAggregator()
148148
aggregator.update(123)

ext/opentelemetry-ext-prometheus/tests/test_prometheus_exporter.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,9 @@ def setUp(self):
3737
"unit",
3838
int,
3939
metrics.Counter,
40-
["environment"],
4140
)
4241
labels = {"environment": "staging"}
43-
self._labels_key = metrics.get_labels_as_key(labels)
42+
self._labels_key = metrics.get_dict_as_key(labels)
4443

4544
self._mock_registry_register = mock.Mock()
4645
self._registry_register_patch = mock.patch(
@@ -83,10 +82,9 @@ def test_counter_to_prometheus(self):
8382
"unit",
8483
int,
8584
metrics.Counter,
86-
["environment@", "os"],
8785
)
8886
labels = {"environment@": "staging", "os": "Windows"}
89-
key_labels = metrics.get_labels_as_key(labels)
87+
key_labels = metrics.get_dict_as_key(labels)
9088
aggregator = SumAggregator()
9189
aggregator.update(123)
9290
aggregator.take_checkpoint()
@@ -117,7 +115,7 @@ def test_invalid_metric(self):
117115
"tesname", "testdesc", "unit", int, StubMetric
118116
)
119117
labels = {"environment": "staging"}
120-
key_labels = metrics.get_labels_as_key(labels)
118+
key_labels = metrics.get_dict_as_key(labels)
121119
record = MetricRecord(metric, key_labels, None)
122120
collector = CustomCollector("testprefix")
123121
collector.add_metrics_data([record])

opentelemetry-sdk/src/opentelemetry/sdk/metrics/view.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import logging
1616
import threading
17+
from collections import defaultdict
1718
from typing import Sequence, Type, Tuple
1819
from opentelemetry.metrics import (
1920
Counter,
@@ -98,14 +99,12 @@ def __eq__(self, other):
9899
class ViewManager:
99100

100101
def __init__(self):
101-
self.views = {} # metric to set of views
102+
self.views = defaultdict(set) # Map[Metric, Set]
102103
self._view_lock = threading.Lock()
103104

104105
def register_view(self, view):
105106
with self._view_lock:
106-
if self.views.get(view.metric) is None:
107-
self.views[view.metric] = {view}
108-
elif view not in self.views.get(view.metric):
107+
if view not in self.views.get(view.metric):
109108
self.views[view.metric].add(view)
110109
else:
111110
logger.warning("View already registered.")

opentelemetry-sdk/tests/metrics/export/test_export.py

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,6 @@ def test_export(self):
6262

6363

6464
class TestBatcher(unittest.TestCase):
65-
def test_aggregator_for_counter(self):
66-
batcher = UngroupedBatcher(True)
67-
self.assertTrue(
68-
isinstance(batcher.aggregator_for(metrics.Counter), SumAggregator)
69-
)
70-
71-
def test_aggregator_for_updowncounter(self):
72-
batcher = UngroupedBatcher(True)
73-
self.assertTrue(
74-
isinstance(
75-
batcher.aggregator_for(metrics.UpDownCounter), SumAggregator,
76-
)
77-
)
78-
79-
# TODO: Add other aggregator tests
80-
8165
def test_checkpoint_set(self):
8266
meter = metrics.MeterProvider().get_meter(__name__)
8367
batcher = Batcher(True)
@@ -92,7 +76,7 @@ def test_checkpoint_set(self):
9276
aggregator.update(1.0)
9377
labels = ()
9478
_batch_map = {}
95-
_batch_map[(metric, CounterAggregator, labels)] = aggregator
79+
_batch_map[(metric, SumAggregator, labels)] = aggregator
9680
batcher._batch_map = _batch_map
9781
records = batcher.checkpoint_set()
9882
self.assertEqual(len(records), 1)
@@ -119,7 +103,7 @@ def test_finished_collection_stateless(self):
119103
aggregator.update(1.0)
120104
labels = ()
121105
_batch_map = {}
122-
_batch_map[(metric, CounterAggregator, labels)] = aggregator
106+
_batch_map[(metric, SumAggregator, labels)] = aggregator
123107
batcher._batch_map = _batch_map
124108
batcher.finished_collection()
125109
self.assertEqual(len(batcher._batch_map), 0)
@@ -138,7 +122,7 @@ def test_finished_collection_stateful(self):
138122
aggregator.update(1.0)
139123
labels = ()
140124
_batch_map = {}
141-
_batch_map[(metric, CounterAggregator, labels)] = aggregator
125+
_batch_map[(metric, SumAggregator, labels)] = aggregator
142126
batcher._batch_map = _batch_map
143127
batcher.finished_collection()
144128
self.assertEqual(len(batcher._batch_map), 1)
@@ -157,7 +141,7 @@ def test_batcher_process_exists(self):
157141
)
158142
labels = ()
159143
_batch_map = {}
160-
batch_key = (metric, CounterAggregator, labels)
144+
batch_key = (metric, SumAggregator, labels)
161145
_batch_map[batch_key] = aggregator
162146
aggregator2.update(1.0)
163147
batcher._batch_map = _batch_map
@@ -183,7 +167,7 @@ def test_batcher_process_not_exists(self):
183167
)
184168
labels = ()
185169
_batch_map = {}
186-
batch_key = (metric, CounterAggregator, labels)
170+
batch_key = (metric, SumAggregator, labels)
187171
aggregator.update(1.0)
188172
batcher._batch_map = _batch_map
189173
record = metrics.Record(metric, labels, aggregator)
@@ -208,7 +192,7 @@ def test_batcher_process_not_stateful(self):
208192
)
209193
labels = ()
210194
_batch_map = {}
211-
batch_key = (metric, CounterAggregator, labels)
195+
batch_key = (metric, SumAggregator, labels)
212196
aggregator.update(1.0)
213197
batcher._batch_map = _batch_map
214198
record = metrics.Record(metric, labels, aggregator)
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Copyright The OpenTelemetry Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import unittest
16+
from unittest import mock
17+
18+
from opentelemetry.sdk import metrics
19+
from opentelemetry.sdk.metrics.export import aggregate
20+
from opentelemetry.sdk.metrics import view
21+
22+
23+
class TestUtil(unittest.TestCase):
24+
25+
@mock.patch("opentelemetry.sdk.metrics.view.logger")
26+
def test_default_aggregator(self, logger_mock):
27+
meter = metrics.MeterProvider().get_meter(__name__)
28+
counter = metrics.Counter("","","1",int, meter)
29+
self.assertTrue(
30+
isinstance(
31+
view.get_default_aggregator(counter),
32+
aggregate.SumAggregator
33+
)
34+
)
35+
ud_counter = metrics.UpDownCounter("","","1",int, meter)
36+
self.assertTrue(
37+
isinstance(
38+
view.get_default_aggregator(ud_counter),
39+
aggregate.SumAggregator
40+
)
41+
)
42+
observer = metrics.SumObserver(lambda:None,"","","1",int)
43+
self.assertTrue(
44+
isinstance(
45+
view.get_default_aggregator(observer),
46+
aggregate.LastValueAggregator
47+
)
48+
)
49+
ud_observer = metrics.SumObserver(lambda:None,"","","1",int)
50+
self.assertTrue(
51+
isinstance(
52+
view.get_default_aggregator(ud_observer),
53+
aggregate.LastValueAggregator
54+
)
55+
)
56+
recorder = metrics.ValueRecorder("","","1",int, meter)
57+
self.assertTrue(
58+
isinstance(
59+
view.get_default_aggregator(recorder),
60+
aggregate.MinMaxSumCountAggregator
61+
)
62+
)
63+
v_observer = metrics.ValueObserver(lambda:None,"","","1",int)
64+
self.assertTrue(
65+
isinstance(
66+
view.get_default_aggregator(v_observer),
67+
aggregate.ValueObserverAggregator
68+
)
69+
)
70+
self.assertTrue(
71+
isinstance(
72+
view.get_default_aggregator(DummyMetric()),
73+
aggregate.SumAggregator
74+
)
75+
)
76+
self.assertEqual(logger_mock.warning.call_count, 1)
77+
78+
79+
class DummyMetric(metrics.Metric):
80+
81+
def __init__(self):
82+
pass
83+

0 commit comments

Comments
 (0)