@@ -291,7 +291,9 @@ def test_emit(self):
291291 )
292292 logname = "loggername"
293293 message = "hello world"
294- record = logging .LogRecord (logname , logging , None , None , message , None , None )
294+ record = logging .LogRecord (
295+ logname , logging .INFO , None , None , message , None , None
296+ )
295297 handler .handle (record )
296298 self .assertEqual (
297299 handler .transport .send_called_with ,
@@ -315,7 +317,9 @@ def test_emit_manual_field_override(self):
315317 )
316318 logname = "loggername"
317319 message = "hello world"
318- record = logging .LogRecord (logname , logging , None , None , message , None , None )
320+ record = logging .LogRecord (
321+ logname , logging .INFO , None , None , message , None , None
322+ )
319323 # set attributes manually
320324 expected_trace = "123"
321325 setattr (record , "trace" , expected_trace )
@@ -350,6 +354,53 @@ def test_emit_manual_field_override(self):
350354 ),
351355 )
352356
357+ def test_emit_with_custom_formatter (self ):
358+ """
359+ Handler should respect custom formatters attached
360+ """
361+ from google .cloud .logging_v2 .logger import _GLOBAL_RESOURCE
362+
363+ client = _Client (self .PROJECT )
364+ handler = self ._make_one (
365+ client , transport = _Transport , resource = _GLOBAL_RESOURCE ,
366+ )
367+ logFormatter = logging .Formatter (fmt = "%(name)s :: %(levelname)s :: %(message)s" )
368+ handler .setFormatter (logFormatter )
369+ message = "test"
370+ expected_result = "logname :: INFO :: test"
371+ record = logging .LogRecord (
372+ "logname" , logging .INFO , None , None , message , None , None
373+ )
374+ handler .handle (record )
375+
376+ self .assertEqual (
377+ handler .transport .send_called_with ,
378+ (record , expected_result , _GLOBAL_RESOURCE , None , None , None , None , None ,),
379+ )
380+
381+ def test_format_with_arguments (self ):
382+ """
383+ Handler should support format string arguments
384+ """
385+ from google .cloud .logging_v2 .logger import _GLOBAL_RESOURCE
386+
387+ client = _Client (self .PROJECT )
388+ handler = self ._make_one (
389+ client , transport = _Transport , resource = _GLOBAL_RESOURCE ,
390+ )
391+ message = "name: %s"
392+ name_arg = "Daniel"
393+ expected_result = "name: Daniel"
394+ record = logging .LogRecord (
395+ None , logging .INFO , None , None , message , name_arg , None
396+ )
397+ handler .handle (record )
398+
399+ self .assertEqual (
400+ handler .transport .send_called_with ,
401+ (record , expected_result , _GLOBAL_RESOURCE , None , None , None , None , None ,),
402+ )
403+
353404
354405class TestSetupLogging (unittest .TestCase ):
355406 def _call_fut (self , handler , excludes = None ):
0 commit comments