def setUp(self): """Setup functions""" test.testcase.DatabaseTestCase.setUp(self) self.server = MockServer(store=self.store) self.terminal = LoginTerminal(self.server, authenticated_terminal=AuthenticatedTerminal) user1 = User(u"Me", u"Meme", u"*****@*****.**") password1 = PasswordAuthentication() password1.user = user1 password1.username = u"me.meme" password1.password("secure-password") self.store.add(user1) self.store.add(password1) self.user_me = user1
class TestLoginTerminal(test.testcase.DatabaseTestCase): """ Test case for the login terminal """ def setUp(self): """Setup functions""" test.testcase.DatabaseTestCase.setUp(self) self.server = MockServer(store=self.store) self.terminal = LoginTerminal(self.server, authenticated_terminal=AuthenticatedTerminal) user1 = User(u"Me", u"Meme", u"*****@*****.**") password1 = PasswordAuthentication() password1.user = user1 password1.username = u"me.meme" password1.password("secure-password") self.store.add(user1) self.store.add(password1) self.user_me = user1 def test_login_user_password(self): """Correct login""" request = {'request': 'login', 'login-module': 'user-password', 'module-info': {'username': u'me.meme', 'password': '******'}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 200} self.assertEqual(expected_response, response) self.assertIsInstance(terminal, AuthenticatedTerminal) self.assertEqual(self.user_me, terminal.user()) self.assertEqual(self.server, terminal.server()) def test_incorrect_password(self): """Incorrect password""" request = {'request': 'login', 'login-module': 'user-password', 'module-info': {'username': u'me.meme', 'password': '******'}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 1000, 'msg': 'Wrong username or password'} self.assertEqual(expected_response, response) self.assertEqual(self.terminal, terminal) def test_incorrect_username(self): """Incorrect username""" request = {'request': 'login', 'login-module': 'user-password', 'module-info': {'username': u'no-exits', 'password': '******'}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 1000, 'msg': 'Wrong username or password'} self.assertEqual(expected_response, response) self.assertEqual(self.terminal, terminal) def test_empty_username(self): """Test empty username. Github bug #6""" request = {'request': 'login', 'login-module': 'user-password', 'module-info': {'username': '', 'password': '******'}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 1000, 'msg': 'Wrong username or password'} self.assertEqual(expected_response, response) self.assertEqual(self.terminal, terminal) def test_empty_password(self): """Test empty password.""" request = {'request': 'login', 'login-module': 'user-password', 'module-info': {'username': '******', 'password': ''}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 1000, 'msg': 'Wrong username or password'} self.assertEqual(expected_response, response) self.assertEqual(self.terminal, terminal) def test_incorrect_login_module(self): """Test login with incorrect login module""" request = {'request': 'login', 'login-module': 'non-exissting-module', 'module-info': {'username': '******', 'password': ''}} (response, terminal) = self.terminal.login(request) expected_response = {'response': 'login', 'code': 405, 'msg': 'Login module not supported'} self.assertEqual(expected_response, response) self.assertEqual(self.terminal, terminal)