Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/cherrypy/test/_test_states_demo.py
diff options
context:
space:
mode:
authorSebastian Silva <sebastian@somosazucar.org>2011-07-09 00:17:44 (GMT)
committer Icarito <icarito@spock.(none)>2011-07-09 00:18:57 (GMT)
commit570a268e7562303690ef6b599ea244945a3100ce (patch)
tree1f772420739a73515671f73dfeb397870daa9fe0 /cherrypy/test/_test_states_demo.py
parent365ef228a2a94708024030d3993bb9f0a152a038 (diff)
Still importing WebSDK.
Need to read up on GIT.
Diffstat (limited to 'cherrypy/test/_test_states_demo.py')
-rwxr-xr-xcherrypy/test/_test_states_demo.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/cherrypy/test/_test_states_demo.py b/cherrypy/test/_test_states_demo.py
new file mode 100755
index 0000000..3f8f196
--- /dev/null
+++ b/cherrypy/test/_test_states_demo.py
@@ -0,0 +1,66 @@
+import os
+import sys
+import time
+starttime = time.time()
+
+import cherrypy
+
+
+class Root:
+
+ def index(self):
+ return "Hello World"
+ index.exposed = True
+
+ def mtimes(self):
+ return repr(cherrypy.engine.publish("Autoreloader", "mtimes"))
+ mtimes.exposed = True
+
+ def pid(self):
+ return str(os.getpid())
+ pid.exposed = True
+
+ def start(self):
+ return repr(starttime)
+ start.exposed = True
+
+ def exit(self):
+ # This handler might be called before the engine is STARTED if an
+ # HTTP worker thread handles it before the HTTP server returns
+ # control to engine.start. We avoid that race condition here
+ # by waiting for the Bus to be STARTED.
+ cherrypy.engine.wait(state=cherrypy.engine.states.STARTED)
+ cherrypy.engine.exit()
+ exit.exposed = True
+
+
+def unsub_sig():
+ cherrypy.log("unsubsig: %s" % cherrypy.config.get('unsubsig', False))
+ if cherrypy.config.get('unsubsig', False):
+ cherrypy.log("Unsubscribing the default cherrypy signal handler")
+ cherrypy.engine.signal_handler.unsubscribe()
+ try:
+ from signal import signal, SIGTERM
+ except ImportError:
+ pass
+ else:
+ def old_term_handler(signum=None, frame=None):
+ cherrypy.log("I am an old SIGTERM handler.")
+ sys.exit(0)
+ cherrypy.log("Subscribing the new one.")
+ signal(SIGTERM, old_term_handler)
+cherrypy.engine.subscribe('start', unsub_sig, priority=100)
+
+
+def starterror():
+ if cherrypy.config.get('starterror', False):
+ zerodiv = 1 / 0
+cherrypy.engine.subscribe('start', starterror, priority=6)
+
+def log_test_case_name():
+ if cherrypy.config.get('test_case_name', False):
+ cherrypy.log("STARTED FROM: %s" % cherrypy.config.get('test_case_name'))
+cherrypy.engine.subscribe('start', log_test_case_name, priority=6)
+
+
+cherrypy.tree.mount(Root(), '/', {'/': {}})