mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-01-31 23:38:46 +00:00
Log inspection and manipulation from tests.
This commit is contained in:
parent
12c140b951
commit
f0fd33fb11
@ -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)
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user