Belle II Software  release-05-02-19
logsummary.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 """
5 Test if the log summary is shown correctly in all cases
6 """
7 
8 from basf2 import create_path, process, Module, logging, LogLevel, LogInfo, \
9  B2WARNING, B2FATAL, B2ERROR
10 import multiprocessing
11 
12 
13 def fork_process(*args, target=process):
14  """Run function in forked child to eliminate side effects"""
15  sub = multiprocessing.Process(target=target, args=args)
16  sub.start()
17  sub.join()
18 
19 
20 class FatalError(Module):
21  """Simple module to just print a warning, an error and a fatal error"""
22 
23  def event(self):
24  """print messages"""
25  B2WARNING("warning")
26  B2ERROR("error")
27  B2FATAL("fatal error")
28 
29 
30 logging.log_level = LogLevel.WARNING
31 for level in LogLevel.values.values():
32  logging.set_info(level, LogInfo.LEVEL | LogInfo.MODULE | LogInfo.PACKAGE | LogInfo.MESSAGE)
33 
34 main = create_path()
35 main.add_module("EventInfoSetter")
36 module = main.add_module(FatalError())
37 
38 print("run in default settings")
39 fork_process(main)
40 
41 print("run with no warnings")
42 logging.log_level = LogLevel.ERROR
43 fork_process(main)
44 logging.log_level = LogLevel.WARNING
45 
46 print("run with no framework warnings")
47 logging.package("framework").log_level = LogLevel.ERROR
48 fork_process(main)
49 logging.package("framework").log_level = LogLevel.WARNING
50 
51 print("run with no module warnings")
52 module.set_log_level(LogLevel.ERROR)
53 fork_process(main)
54 module.set_log_level(LogLevel.WARNING)
55 
56 print("run without summary")
57 logging.enable_summary(False)
58 fork_process(main)
logsummary.FatalError
Definition: logsummary.py:20
logsummary.FatalError.event
def event(self)
Definition: logsummary.py:23