Skip to content
This repository was archived by the owner on Sep 17, 2025. It is now read-only.

Commit 9a94bec

Browse files
authored
Stats: Fix recording with None TagMap. (#453)
1 parent 2857864 commit 9a94bec

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

opencensus/stats/view_data.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ def get_tag_values(self, tags, columns):
8383

8484
def record(self, context, value, timestamp, attachments=None):
8585
"""records the view data against context"""
86-
tag_values = self.get_tag_values(tags=context.map,
86+
if context is None:
87+
tags = dict()
88+
else:
89+
tags = context.map
90+
tag_values = self.get_tag_values(tags=tags,
8791
columns=self.view.columns)
8892
tuple_vals = tuple(tag_values)
8993
if tuple_vals not in self.tag_value_aggregation_data_map:

tests/unit/stats/test_view_data.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,3 +293,24 @@ def test_record_with_missing_key_in_context(self):
293293
self.assertTrue(tuple_vals in view_data.tag_value_aggregation_data_map)
294294
sum_data = view_data.tag_value_aggregation_data_map.get(tuple_vals)
295295
self.assertEqual(4, sum_data.sum_data)
296+
297+
def test_record_with_none_context(self):
298+
measure = mock.Mock()
299+
sum_aggregation = aggregation_module.SumAggregation()
300+
view = view_module.View("test_view", "description", ['key1', 'key2'],
301+
measure, sum_aggregation)
302+
start_time = datetime.utcnow()
303+
end_time = datetime.utcnow()
304+
view_data = view_data_module.ViewData(
305+
view=view, start_time=start_time, end_time=end_time)
306+
time = datetime.utcnow().isoformat() + 'Z'
307+
value = 4
308+
view_data.record(
309+
context=None, value=value, timestamp=time, attachments=None)
310+
tag_values = view_data.get_tag_values(
311+
tags={}, columns=view.columns)
312+
tuple_vals = tuple(tag_values)
313+
self.assertEqual([None, None], tag_values)
314+
self.assertTrue(tuple_vals in view_data.tag_value_aggregation_data_map)
315+
sum_data = view_data.tag_value_aggregation_data_map.get(tuple_vals)
316+
self.assertEqual(4, sum_data.sum_data)

0 commit comments

Comments
 (0)