@@ -180,6 +180,41 @@ async def test_can_set_namespace(mocker):
180
180
assert context .namespace == expected_value
181
181
182
182
183
+ @pytest .mark .asyncio
184
+ async def test_context_is_preserved_across_flushes (mocker ):
185
+ # arrange
186
+ expected_namespace = "Namespace"
187
+ metric_key = "Metric"
188
+ expected_dimension_key = "Dim"
189
+ expected_property_key = "Prop"
190
+ expected_value = "Value"
191
+
192
+ logger , sink , env = get_logger_and_sink (mocker )
193
+
194
+ logger .set_namespace (expected_namespace )
195
+ logger .set_property (expected_property_key , expected_value )
196
+ logger .set_dimensions ({expected_dimension_key : expected_value })
197
+
198
+ # act
199
+ logger .put_metric (metric_key , 0 )
200
+ await logger .flush ()
201
+
202
+ context = sink .accept .call_args [0 ][0 ]
203
+ assert context .namespace == expected_namespace
204
+ assert context .get_dimensions ()[0 ][expected_dimension_key ] == expected_value
205
+ assert context .properties [expected_property_key ] == expected_value
206
+ assert context .metrics [metric_key ].values == [0 ]
207
+
208
+ logger .put_metric (metric_key , 1 )
209
+ await logger .flush ()
210
+
211
+ context = sink .accept .call_args [0 ][0 ]
212
+ assert context .namespace == expected_namespace
213
+ assert context .get_dimensions ()[0 ][expected_dimension_key ] == expected_value
214
+ assert context .properties [expected_property_key ] == expected_value
215
+ assert context .metrics [metric_key ].values == [1 ]
216
+
217
+
183
218
# Test helper methods
184
219
185
220
0 commit comments