Refactored method is_forbidden

This commit is contained in:
Sheng
2019-01-16 22:58:49 +08:00
parent 9f6d900b23
commit 8a8d741230
4 changed files with 37 additions and 36 deletions

View File

@@ -19,30 +19,31 @@ class TestMixinHandler(unittest.TestCase):
def test_is_forbidden(self):
mhandler = MixinHandler()
handler.https_server_enabled = True
handler.redirecting = True
options.fbidhttp = True
options.redirect = True
context = Mock(
address=('8.8.8.8', 8888),
trusted_downstream=['127.0.0.1'],
_orig_protocol='http'
)
self.assertTrue(mhandler.is_forbidden(context, ''))
hostname = '4.4.4.4'
self.assertTrue(mhandler.is_forbidden(context, hostname))
context = Mock(
address=('8.8.8.8', 8888),
trusted_downstream=[],
_orig_protocol='http'
)
hostname = 'www.google.com'
self.assertEqual(mhandler.is_forbidden(context, hostname), False)
handler.https_server_enabled = False
self.assertTrue(mhandler.is_forbidden(context, hostname))
options.redirect = False
context = Mock(
address=('8.8.8.8', 8888),
trusted_downstream=[],
_orig_protocol='http'
)
hostname = '4.4.4.4'
self.assertTrue(mhandler.is_forbidden(context, hostname))
context = Mock(
@@ -50,26 +51,21 @@ class TestMixinHandler(unittest.TestCase):
trusted_downstream=[],
_orig_protocol='http'
)
self.assertIsNone(mhandler.is_forbidden(context, ''))
context = Mock(
address=('8.8.8.8', 8888),
trusted_downstream=[],
_orig_protocol='https'
)
self.assertIsNone(mhandler.is_forbidden(context, ''))
context = Mock(
address=('8.8.8.8', 8888),
trusted_downstream=[],
_orig_protocol='http'
)
hostname = '8.8.8.8'
self.assertTrue(mhandler.is_forbidden(context, hostname))
hostname = 'www.google.com'
self.assertIsNone(mhandler.is_forbidden(context, hostname))
options.fbidhttp = False
self.assertIsNone(mhandler.is_forbidden(context, hostname))
hostname = '4.4.4.4'
self.assertIsNone(mhandler.is_forbidden(context, hostname))
handler.redirecting = False
self.assertIsNone(mhandler.is_forbidden(context, hostname))
context._orig_protocol = 'https'
self.assertIsNone(mhandler.is_forbidden(context, hostname))
def test_get_redirect_url(self):
mhandler = MixinHandler()
hostname = 'www.example.com'

View File

@@ -11,12 +11,12 @@ class TestMain(unittest.TestCase):
app = Application()
app.listen = lambda x, y, **kwargs: 1
handler.https_server_enabled = False
handler.redirecting = None
server_settings = dict()
app_listen(app, 80, '127.0.0.1', server_settings)
self.assertFalse(handler.https_server_enabled)
self.assertFalse(handler.redirecting)
handler.https_server_enabled = False
handler.redirecting = None
server_settings = dict(ssl_options='enabled')
app_listen(app, 80, '127.0.0.1', server_settings)
self.assertTrue(handler.https_server_enabled)
self.assertTrue(handler.redirecting)