webssh

Web based ssh client https://github.com/huashengdun/webssh webssh.huashengdun.org/
git clone http://git.hanabi.in/repos/webssh.git
Log | Files | Refs | README | LICENSE

commit d1177bc2c593290e72cd0c59406a7e4a49561a98
parent 50ab045c1f1678e3758a8578f3aae8178a3f124b
Author: Sheng <webmaster0115@gmail.com>
Date:   Wed, 25 Apr 2018 19:01:54 +0800

Updated handler.py and test_hanlder.py

Diffstat:
Mtests/test_handler.py | 33+++++++++++----------------------
Mwebssh/handler.py | 2++
2 files changed, 13 insertions(+), 22 deletions(-)

diff --git a/tests/test_handler.py b/tests/test_handler.py @@ -1,5 +1,4 @@ import unittest -import sys from tornado.httputil import HTTPServerRequest from handler import MixinHandler @@ -7,33 +6,23 @@ from handler import MixinHandler class TestMixinHandler(unittest.TestCase): - def test_get_real_client_addr_without_nginx_config(self): + def test_get_real_client_addr(self): handler = MixinHandler() handler.request = HTTPServerRequest(uri='/') self.assertIsNone(handler.get_real_client_addr()) - def test_get_real_client_addr_with_correct_nginx_config(self): - handler = MixinHandler() - handler.request = HTTPServerRequest(uri='/') - ip = '127.0.0.1' handler.request.headers.add('X-Real-Ip', ip) - handler.request.headers.add('X-Real-Port', '12345') - self.assertEqual(handler.get_real_client_addr(), (ip, 12345)) + self.assertEqual(handler.get_real_client_addr(), False) - @unittest.skipIf(sys.version_info < (3,), - reason='assertLogs not supported in Python 2') - def test_get_real_client_addr_with_bad_nginx_config(self): - handler = MixinHandler() - handler.request = HTTPServerRequest(uri='/') + handler.request.headers.add('X-Real-Port', '12345x') + self.assertEqual(handler.get_real_client_addr(), False) - ip = '127.0.0.1' - handler.request.headers.add('X-Real-Ip', ip) - with self.assertLogs() as cm: - handler.get_real_client_addr() - self.assertEqual(cm.output, ['WARNING:root:Bad nginx configuration.']) + handler.request.headers.update({'X-Real-Port': '12345'}) + self.assertEqual(handler.get_real_client_addr(), (ip, 12345)) - handler.request.headers.add('X-Real-Port', '12345x') - with self.assertLogs() as cm: - handler.get_real_client_addr() - self.assertEqual(cm.output, ['WARNING:root:Bad nginx configuration.']) + handler.request.headers.update({'X-Real-ip': None}) + self.assertEqual(handler.get_real_client_addr(), False) + + handler.request.headers.update({'X-Real-Port': '12345x'}) + self.assertEqual(handler.get_real_client_addr(), False) diff --git a/webssh/handler.py b/webssh/handler.py @@ -35,7 +35,9 @@ class MixinHandler(object): else: if ip: # does not validate ip and port here return (ip, port) + logging.warn('Bad nginx configuration.') + return False class IndexHandler(MixinHandler, tornado.web.RequestHandler):