class LoginViewTest(Test): def setUp(self): self.feature = LoginFeature() self.client = app.test_client() self.user = RegisterUserFeature().register_user('*****@*****.**', '123456') def tearDown(self): Session.delete().execute() User.delete().execute() def test_login_is_reachable(self): response = self.client.get('/login') self.assertEquals(response.status_code, 200) def test_user_can_login(self): response = self.client.post('/login', data={ 'email': self.user.email, 'password': '******', }) self.assertEquals(response.status_code, 302) session = Session.select().where(Session.user == self.user).first() self.assertTrue(self.feature.is_logged(session.token)) def test_user_can_logout(self): response = self.client.post('/login', data={ 'email': self.user.email, 'password': '******', }) self.assertEquals(response.status_code, 302) session = Session.select().where(Session.user == self.user).first() self.feature.logout(session.token) self.assertFalse(self.feature.is_logged(session.token))
class LoginViewTest(Test): def setUp(self): self.feature = LoginFeature() self.client = app.test_client() self.user = RegisterUserFeature().register_user("*****@*****.**", "123456") def tearDown(self): Session.delete().execute() User.delete().execute() def test_login_is_reachable(self): response = self.client.get("/login") self.assertEquals(response.status_code, 200) def test_user_can_login(self): response = self.client.post("/login", data={"email": self.user.email, "password": "******"}) self.assertEquals(response.status_code, 302) session = Session.select().where(Session.user == self.user).first() self.assertTrue(self.feature.is_logged(session.token)) def test_user_can_logout(self): response = self.client.post("/login", data={"email": self.user.email, "password": "******"}) self.assertEquals(response.status_code, 302) session = Session.select().where(Session.user == self.user).first() self.feature.logout(session.token) self.assertFalse(self.feature.is_logged(session.token))
def validate_credentials(self): feature = LoginFeature() email = self.data.get('email') password = self.data.get('password') try: feature.validate_credentials(email, password) except (LoginFeature.UserDoesNotExist, LoginFeature.InvalidPassword): self.set_error('global', 'Invalid credentials')
def login(self): feature = LoginFeature() session['session_token'] = feature.login( email=self.data.get('email'), password=self.data.get('password') )
def should_redirect_to_dashboard(self): login = LoginFeature() return (login.is_logged(session.get('session_token')) and request.endpoint in self.public_endpoints)
def inject_current_user(): user = LoginFeature().get_current_user(session.get('session_token')) return {'current_user': user}
def should_redirect_to_dashboard(self): login = LoginFeature() return ( login.is_logged(session.get('session_token')) and request.endpoint in self.public_endpoints )
def logout(self): LoginFeature().logout(session.get('session_token')) session.pop('session_token') return redirect('/login')
def login(self): feature = LoginFeature() session['session_token'] = feature.login( email=self.data.get('email'), password=self.data.get('password'))
def setUp(self): self.feature = LoginFeature() self.client = app.test_client() self.user = RegisterUserFeature().register_user('*****@*****.**', '123456')
def __init__(self): self.current_user = LoginFeature().get_current_user( session.get('session_token'))
class LoginFeatureTest(Test): def setUp(self): self.feature = LoginFeature() def tearDown(self): Session.delete().execute() User.delete().execute() def register_example_user(self): RegisterUserFeature().register_user('*****@*****.**', '123456') def test_can_login_with_valid_credentials(self): self.register_example_user() token = self.feature.login('*****@*****.**', '123456') self.assertTrue(self.feature.is_logged(token)) def test_cannot_login_with_inexistent_user(self): with self.assertRaises(LoginFeature.UserDoesNotExist): self.feature.login('*****@*****.**', '123456') def test_cannot_login_with_invalid_password(self): self.register_example_user() with self.assertRaises(LoginFeature.InvalidPassword): self.feature.login('*****@*****.**', '1234567') def test_can_get_current_user(self): self.register_example_user() token = self.feature.login('*****@*****.**', '123456') user = self.feature.get_current_user(token) self.assertEquals(user.email, '*****@*****.**') def test_cannot_get_current_user_without_login(self): self.register_example_user() user = self.feature.get_current_user('invalid_token') self.assertIsNone(user) def test_can_logout(self): self.register_example_user() token = self.feature.login('*****@*****.**', '123456') self.feature.logout(token) self.assertFalse(self.feature.is_logged(token)) self.assertIsNone(self.feature.get_current_user(token)) def test_can_login_with_case_changed_email(self): self.register_example_user() token = self.feature.login('*****@*****.**', '123456') self.assertTrue(self.feature.is_logged(token))
def setUp(self): self.feature = LoginFeature()
def setUp(self): self.feature = LoginFeature() self.client = app.test_client() self.user = RegisterUserFeature().register_user("*****@*****.**", "123456")