_test_states_demo.py (1800B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\cherrypy\test\_test_states_demo.py 2 import os 3 import sys 4 import time 5 starttime = time.time() 6 import cherrypy 7 8 class Root: 9 10 def index(self): 11 return 'Hello World' 12 13 index.exposed = True 14 15 def mtimes(self): 16 return repr(cherrypy.engine.publish('Autoreloader', 'mtimes')) 17 18 mtimes.exposed = True 19 20 def pid(self): 21 return str(os.getpid()) 22 23 pid.exposed = True 24 25 def start(self): 26 return repr(starttime) 27 28 start.exposed = True 29 30 def exit(self): 31 cherrypy.engine.wait(state=cherrypy.engine.states.STARTED) 32 cherrypy.engine.exit() 33 34 exit.exposed = True 35 36 37 def unsub_sig(): 38 cherrypy.log('unsubsig: %s' % cherrypy.config.get('unsubsig', False)) 39 if cherrypy.config.get('unsubsig', False): 40 cherrypy.log('Unsubscribing the default cherrypy signal handler') 41 cherrypy.engine.signal_handler.unsubscribe() 42 try: 43 from signal import signal, SIGTERM 44 except ImportError: 45 pass 46 else: 47 48 def old_term_handler(signum = None, frame = None): 49 cherrypy.log('I am an old SIGTERM handler.') 50 sys.exit(0) 51 52 cherrypy.log('Subscribing the new one.') 53 signal(SIGTERM, old_term_handler) 54 55 56 cherrypy.engine.subscribe('start', unsub_sig, priority=100) 57 58 def starterror(): 59 if cherrypy.config.get('starterror', False): 60 zerodiv = 1 / 0 61 62 63 cherrypy.engine.subscribe('start', starterror, priority=6) 64 65 def log_test_case_name(): 66 if cherrypy.config.get('test_case_name', False): 67 cherrypy.log('STARTED FROM: %s' % cherrypy.config.get('test_case_name')) 68 69 70 cherrypy.engine.subscribe('start', log_test_case_name, priority=6) 71 cherrypy.tree.mount(Root(), '/', {'/': {}})