BIND 10 trac2641_3, updated. 77af0818a39b800189928ae950839a43f3d8f2d9 [2641] Test /login API call
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Feb 19 07:54:16 UTC 2013
The branch, trac2641_3 has been updated
via 77af0818a39b800189928ae950839a43f3d8f2d9 (commit)
from e86811d1938f1f16fc7ecf44d09b08ad9058a756 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 77af0818a39b800189928ae950839a43f3d8f2d9
Author: Mukund Sivaraman <muks at isc.org>
Date: Tue Feb 19 13:23:40 2013 +0530
[2641] Test /login API call
-----------------------------------------------------------------------
Summary of changes:
src/bin/cmdctl/cmdctl.py.in | 2 +-
src/bin/cmdctl/tests/cmdctl_test.py | 61 +++++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+), 1 deletion(-)
-----------------------------------------------------------------------
diff --git a/src/bin/cmdctl/cmdctl.py.in b/src/bin/cmdctl/cmdctl.py.in
index 625d853..91b7434 100755
--- a/src/bin/cmdctl/cmdctl.py.in
+++ b/src/bin/cmdctl/cmdctl.py.in
@@ -176,7 +176,7 @@ class SecureHTTPRequestHandler(http.server.BaseHTTPRequestHandler):
is_user_valid, error_info = self._check_user_name_and_pwd()
if is_user_valid:
self.server.save_user_session_id(self.session_id)
- return http.client.OK, ["login success "]
+ return http.client.OK, ["login success"]
else:
return http.client.UNAUTHORIZED, error_info
diff --git a/src/bin/cmdctl/tests/cmdctl_test.py b/src/bin/cmdctl/tests/cmdctl_test.py
index 84f56b1..4717b18 100644
--- a/src/bin/cmdctl/tests/cmdctl_test.py
+++ b/src/bin/cmdctl/tests/cmdctl_test.py
@@ -323,6 +323,67 @@ class TestSecureHTTPRequestHandler(unittest.TestCase):
finally:
self.handler.server.get_num_users = orig_get_num_users
+ def test_handle_login(self):
+ orig_is_user_logged_in = self.handler._is_user_logged_in
+ orig_check_user_name_and_pwd = self.handler._check_user_name_and_pwd
+ try:
+ def create_is_user_logged_in(status):
+ '''Create a replacement _is_user_logged_in() method.'''
+ def my_is_user_logged_in():
+ return status
+ return my_is_user_logged_in
+
+ # Check case where _is_user_logged_in() returns True
+ self.handler._is_user_logged_in = create_is_user_logged_in(True)
+ self.handler.headers['cookie'] = 12345
+ self.handler.path = '/login'
+ self.handler.do_POST()
+ self.assertEqual(self.handler.rcode, http.client.OK)
+ self.handler.wfile.seek(0, 0)
+ d = self.handler.wfile.read()
+ self.assertEqual(json.loads(d.decode()), ['user has already login'])
+
+ # Clear the output
+ self.handler.wfile.seek(0, 0)
+ self.handler.wfile.truncate()
+
+ # Check case where _is_user_logged_in() returns False
+ self.handler._is_user_logged_in = create_is_user_logged_in(False)
+
+ def create_check_user_name_and_pwd(status, error_info=None):
+ '''Create a replacement _check_user_name_and_pwd() method.'''
+ def my_check_user_name_and_pwd():
+ return status, error_info
+ return my_check_user_name_and_pwd
+
+ # (a) Check case where _check_user_name_and_pwd() returns
+ # valid user status
+ self.handler._check_user_name_and_pwd = \
+ create_check_user_name_and_pwd(True)
+ self.handler.do_POST()
+ self.assertEqual(self.handler.rcode, http.client.OK)
+ self.handler.wfile.seek(0, 0)
+ d = self.handler.wfile.read()
+ self.assertEqual(json.loads(d.decode()), ['login success'])
+
+ # Clear the output
+ self.handler.wfile.seek(0, 0)
+ self.handler.wfile.truncate()
+
+ # (b) Check case where _check_user_name_and_pwd() returns
+ # invalid user status
+ self.handler._check_user_name_and_pwd = \
+ create_check_user_name_and_pwd(False, ['login failed'])
+ self.handler.do_POST()
+ self.assertEqual(self.handler.rcode, http.client.UNAUTHORIZED)
+ self.handler.wfile.seek(0, 0)
+ d = self.handler.wfile.read()
+ self.assertEqual(json.loads(d.decode()), ['login failed'])
+
+ finally:
+ self.handler._is_user_logged_in = orig_is_user_logged_in
+ self.handler._check_user_name_and_pwd = orig_check_user_name_and_pwd
+
class MyCommandControl(CommandControl):
def _get_modules_specification(self):
return {}
More information about the bind10-changes
mailing list