@@ -215,6 +215,82 @@ def test_events_deleted_outside_of_extension_while_extension_is_running(self):
215
215
self .runtime .telemetry_writer .write_event ("testing telemetry write to file" , Constants .TelemetryEventLevel .Error , "Test Task" )
216
216
os .listdir = backup_os_listdir
217
217
218
+ def test_write_event_with_buffer_true_and_then_flush (self ):
219
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 1" , Constants .TelemetryEventLevel .Verbose ,
220
+ Constants .BufferMessage .TRUE )
221
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 2" , Constants .TelemetryEventLevel .Verbose ,
222
+ Constants .BufferMessage .TRUE )
223
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 3" , Constants .TelemetryEventLevel .Verbose ,
224
+ Constants .BufferMessage .FLUSH )
225
+
226
+ latest_event_file = [pos_json for pos_json in os .listdir (self .runtime .telemetry_writer .events_folder_path ) if
227
+ re .search ('^[0-9]+.json$' , pos_json )][- 1 ]
228
+ with open (os .path .join (self .runtime .telemetry_writer .events_folder_path , latest_event_file ), 'r+' ) as f :
229
+ events = json .load (f )
230
+ self .assertTrue (events is not None )
231
+ text_found = re .search ('TC=([0-9]+)' , events [- 1 ]['Message' ])
232
+ f .close ()
233
+ self .assertTrue (text_found .string .startswith ("Message 1 | Message 2 | Message 3" ))
234
+
235
+ def test_write_event_with_buffer_only_flush (self ):
236
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 1" , Constants .TelemetryEventLevel .Verbose ,
237
+ Constants .BufferMessage .FLUSH )
238
+
239
+ latest_event_file = [pos_json for pos_json in os .listdir (self .runtime .telemetry_writer .events_folder_path ) if
240
+ re .search ('^[0-9]+.json$' , pos_json )][- 1 ]
241
+ with open (os .path .join (self .runtime .telemetry_writer .events_folder_path , latest_event_file ), 'r+' ) as f :
242
+ events = json .load (f )
243
+ self .assertTrue (events is not None )
244
+ text_found = re .search ('TC=([0-9]+)' , events [- 1 ]['Message' ])
245
+ f .close ()
246
+ self .assertTrue (text_found .string .startswith ("Message 1" ))
247
+
248
+ def test_write_event_with_buffer_false (self ):
249
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 1" , Constants .TelemetryEventLevel .Verbose ,
250
+ Constants .BufferMessage .FALSE )
251
+
252
+ latest_event_file = [pos_json for pos_json in os .listdir (self .runtime .telemetry_writer .events_folder_path ) if
253
+ re .search ('^[0-9]+.json$' , pos_json )][- 1 ]
254
+ with open (os .path .join (self .runtime .telemetry_writer .events_folder_path , latest_event_file ), 'r+' ) as f :
255
+ events = json .load (f )
256
+ self .assertTrue (events is not None )
257
+ text_found = re .search ('TC=([0-9]+)' , events [- 1 ]['Message' ])
258
+ f .close ()
259
+ self .assertTrue (text_found .string .startswith ("Message 1" ))
260
+
261
+ def test_write_event_with_buffer_true_and_then_flush_but_different_telemetry_event_level (self ):
262
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 1" , Constants .TelemetryEventLevel .Verbose ,
263
+ Constants .BufferMessage .TRUE )
264
+
265
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 2" , Constants .TelemetryEventLevel .Informational ,
266
+ Constants .BufferMessage .FLUSH )
267
+
268
+ # As the messages are with different TelemetryEventLevel, they will be written separately
269
+ # even though flush is used.
270
+ latest_event_file = [pos_json for pos_json in os .listdir (self .runtime .telemetry_writer .events_folder_path ) if
271
+ re .search ('^[0-9]+.json$' , pos_json )][- 1 ]
272
+ with open (os .path .join (self .runtime .telemetry_writer .events_folder_path , latest_event_file ), 'r+' ) as f :
273
+ events = json .load (f )
274
+ self .assertTrue (events is not None )
275
+ text_found = re .search ('TC=([0-9]+)' , events [- 1 ]['Message' ])
276
+ f .close ()
277
+ self .assertTrue (text_found .string .startswith ("Message 2" ))
278
+
279
+ def test_write_event_with_buffer_true_and_empty_string_and_then_flush_with_non_empty_string (self ):
280
+ self .runtime .telemetry_writer .write_event_with_buffer ("" , Constants .TelemetryEventLevel .Verbose ,
281
+ Constants .BufferMessage .TRUE )
282
+
283
+ self .runtime .telemetry_writer .write_event_with_buffer ("Message 1" , Constants .TelemetryEventLevel .Verbose ,
284
+ Constants .BufferMessage .FLUSH )
285
+
286
+ latest_event_file = [pos_json for pos_json in os .listdir (self .runtime .telemetry_writer .events_folder_path ) if
287
+ re .search ('^[0-9]+.json$' , pos_json )][- 1 ]
288
+ with open (os .path .join (self .runtime .telemetry_writer .events_folder_path , latest_event_file ), 'r+' ) as f :
289
+ events = json .load (f )
290
+ self .assertTrue (events is not None )
291
+ text_found = re .search ('TC=([0-9]+)' , events [- 1 ]['Message' ])
292
+ f .close ()
293
+ self .assertTrue (text_found .string .startswith ("Message 1" ))
218
294
219
295
if __name__ == '__main__' :
220
296
unittest .main ()
0 commit comments