aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan-sebastian.tuomi@aalto.fi>2016-07-18 00:01:25 +0300
committerJan Tuomi <jan-sebastian.tuomi@aalto.fi>2016-07-18 00:01:25 +0300
commite1b2b62b20266cbebb266b6089215fb46d968a18 (patch)
tree35d525d30e9a8656a1e4391523333ea7aa5cd4c9
parent46380f5907c6e8e9e0e655d064dececb0978a3ce (diff)
Add mock http server for api tests, response logging
-rw-r--r--botmanager.py3
-rw-r--r--mock_http_server.py49
2 files changed, 52 insertions, 0 deletions
diff --git a/botmanager.py b/botmanager.py
index c889e49..32fa69f 100644
--- a/botmanager.py
+++ b/botmanager.py
@@ -44,8 +44,11 @@ class BotManager(object):
try:
r = requests.get(self.shoutbox_api_url)
logging.info("Response from API OK.")
+ logging.info("Messages:")
+ logging.info(r.text)
except:
logging.warning("Failed to get response from API!")
+ traceback.print_exc(2)
return
def default_action(self, chat_id):
diff --git a/mock_http_server.py b/mock_http_server.py
new file mode 100644
index 0000000..6d2fff7
--- /dev/null
+++ b/mock_http_server.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+import sys
+import http.server
+from http.server import SimpleHTTPRequestHandler
+
+'''
+Mock HTTP server to test
+shoutbox api requests.
+
+Copyright: linuxjournal.com
+Source: http://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python
+'''
+
+class MyHandler(SimpleHTTPRequestHandler):
+ def do_HEAD(self):
+ self.send_response(200)
+ self.send_header("Content-type", "application/json")
+ self.end_headers()
+
+ def do_GET(self):
+ """Respond to a GET request."""
+ self.send_response(200)
+ self.send_header("Content-type", "application/json")
+ self.end_headers()
+
+ body = """{
+ \"message\":\"test message\"
+ \"user\":\"test user\"
+ }"""
+
+ self.wfile.write(body.encode())
+
+HandlerClass = MyHandler
+ServerClass = http.server.HTTPServer
+Protocol = "HTTP/1.0"
+
+if sys.argv[1:]:
+ port = int(sys.argv[1])
+else:
+ port = 8000
+server_address = ('127.0.0.1', port)
+
+HandlerClass.protocol_version = Protocol
+httpd = ServerClass(server_address, HandlerClass)
+
+sa = httpd.socket.getsockname()
+print("Serving HTTP on", sa[0], "port", sa[1], "...")
+httpd.serve_forever()