Log inspection and manipulation from tests.

This commit is contained in:
Aldo Cortesi 2012-06-21 15:39:40 +12:00
parent 12c140b951
commit f0fd33fb11
4 changed files with 41 additions and 47 deletions

View File

@ -9,37 +9,20 @@ def api_info():
)
@app.route('/api/log')
def api_log():
return jsonify(
log = app.config["pathod"].get_log()
)
@app.route('/api/clear_log')
def api_clear_log():
app.config["pathod"].clear_log()
return "OK"
"""
class APILog(tornado.web.RequestHandler):
def get(self):
self.write(
dict(
d = self.application.get_log()
)
)
class APILogClear(tornado.web.RequestHandler):
def post(self):
self.application.clear_log()
self.write("OK")
class APIShutdown(tornado.web.RequestHandler):
def post(self):
tornado.ioloop.IOLoop.instance().stop()
self.write("OK")
class APIInfo(tornado.web.RequestHandler):
def get(self):
self.write(
dict(
version = version.IVERSION
)
)
class _Page(tornado.web.RequestHandler):
def render(self, name, **kwargs):
tornado.web.RequestHandler.render(self, name + ".html", **kwargs)

View File

@ -14,10 +14,30 @@ class Daemon:
self.urlbase = "%s://%s:%s"%("https" if ssl else "http", IFACE, self.port)
def info(self):
"""
Return some basic info about the remote daemon.
"""
resp = requests.get("%s/api/info"%self.urlbase, verify=False)
return resp.json
def log(self):
"""
Return the log buffer as a list of dictionaries.
"""
resp = requests.get("%s/api/log"%self.urlbase, verify=False)
return resp.json["log"]
def clear_log(self):
"""
Clear the log.
"""
resp = requests.get("%s/api/clear_log"%self.urlbase, verify=False)
return resp.ok
def shutdown(self):
"""
Shut the daemon down, return after the thread has exited.
"""
self.thread.server.shutdown()
self.thread.join()

View File

@ -12,22 +12,6 @@ class _TestApplication:
a.remove_anchor("/oink", "400")
assert a.get_anchors() == [("/foo", "200")]
def test_logs(self):
a = pathod.PathodApp(staticdir=None)
a.LOGBUF = 3
a.add_log({})
assert a.log[0]["id"] == 0
a.add_log({})
a.add_log({})
assert a.log[0]["id"] == 2
a.add_log({})
assert len(a.log) == 3
assert a.log[0]["id"] == 3
assert a.log[-1]["id"] == 1
assert a.log_by_id(1)["id"] == 1
assert not a.log_by_id(0)
class TestPathod:
def test_instantiation(self):

View File

@ -6,7 +6,7 @@ import tutils
logging.disable(logging.CRITICAL)
class TestDaemonManual:
def test_startstop(self):
def test_simple(self):
d = test.Daemon()
rsp = requests.get("http://localhost:%s/p/202"%d.port)
assert rsp.ok
@ -46,3 +46,10 @@ class TestDaemon:
def test_info(self):
assert tuple(self.d.info()["version"]) == version.IVERSION
def test_logs(self):
rsp = requests.get("http://localhost:%s/p/202"%self.d.port)
assert len(self.d.log()) == 1
assert self.d.clear_log()
assert len(self.d.log()) == 0