def test_login_post_incorrect_pw(self, user, remember): u = Mock(User) u.validate_password.return_value = False user.by_id.return_value = u self.config.add_route('login', '/login') self.config.add_route('workspace', '/workspace') post = {'userid': 'bob', 'password': '******'} params = {'came_from': 'http://example.com/workspace'} request = testing.DummyRequest(post=post, params=params) request.user = None route_mapper = self.config.get_routes_mapper() request.matched_route = route_mapper.get_route('workspace') views = Views(request) response = views.login() expected_response = { 'came_from': 'http://example.com/workspace', 'userid': 'bob', 'password': '******' } self.assertDictEqual(response, expected_response) u.validate_password.assert_called_with('mypw') self.assertFalse(remember.called)
def test_login_authenticated(self): from pyramid.exceptions import Forbidden request = testing.DummyRequest() request.user = '******' request.exception = Forbidden() views = Views(request) response = views.login() self.assertIsInstance(response, Forbidden)
def test_login_auto_register_from_login(self, user, remember): user.generate.return_value = User('bob', 'bob dob', '*****@*****.**') from pyramid.httpexceptions import HTTPFound self.config.add_route('home', '/') self.config.add_route('login', '/login') request = testing.DummyRequest() request.user = None request.url = 'http://example.com/login' route_mapper = self.config.get_routes_mapper() request.matched_route = route_mapper.get_route('login') request.registry.settings['auto_register'] = True views = Views(request) response = views.login() self.assertIsInstance(response, HTTPFound) self.assertEqual(response.location, 'http://example.com/') user.generate.assert_called_with() remember.assert_called_with(request, 'bob')
def test_login_get_from_loginpage(self): self.config.add_route('home', '/') self.config.add_route('login', '/login') request = testing.DummyRequest() request.user = None request.url = 'http://example.com/login' route_mapper = self.config.get_routes_mapper() request.matched_route = route_mapper.get_route('login') views = Views(request) response = views.login() expected_response = { 'came_from': 'http://example.com/', 'userid': '', 'password': '' } self.assertDictEqual(response, expected_response) self.assertEqual(request.response.headers['WWW-Authenticate'], 'MAC') self.assertEqual(request.response.status_int, 401)
def test_login_post_correct_pw(self, user, remember): from pyramid.httpexceptions import HTTPFound u = Mock(User) u.validate_password.return_value = True user.by_id.return_value = u self.config.add_route('login', '/login') self.config.add_route('workspace', '/workspace') post = {'userid': 'bob', 'password': '******'} params = {'came_from': 'http://example.com/workspace'} request = testing.DummyRequest(post=post, params=params) request.user = None route_mapper = self.config.get_routes_mapper() request.matched_route = route_mapper.get_route('workspace') views = Views(request) response = views.login() self.assertIsInstance(response, HTTPFound) self.assertEqual(response.location, 'http://example.com/workspace') u.validate_password.assert_called_with('mypw') remember.assert_called_with(request, 'bob')
def test_login_auto_register_mac_challenge(self): self.config.add_route('status.json', '/status') self.config.add_route('home', '/') self.config.add_route('login', '/login') request = testing.DummyRequest() request.user = None request.url = 'http://example.com/status' request.method = u'PUT' route_mapper = self.config.get_routes_mapper() request.matched_route = route_mapper.get_route('status.json') request.registry.settings['auto_register'] = True views = Views(request) response = views.login() expected_response = { 'came_from': 'http://example.com/status', 'userid': '', 'password': '' } self.assertDictEqual(response, expected_response) self.assertEqual(request.response.headers['WWW-Authenticate'], 'MAC') self.assertEqual(request.response.status_int, 401)