Beispiel #1
0
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))
Beispiel #2
0
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))
Beispiel #3
0
 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')
Beispiel #4
0
 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')
Beispiel #5
0
 def login(self):
     feature = LoginFeature()
     session['session_token'] = feature.login(
         email=self.data.get('email'),
         password=self.data.get('password')
     )
Beispiel #6
0
 def should_redirect_to_dashboard(self):
     login = LoginFeature()
     return (login.is_logged(session.get('session_token'))
             and request.endpoint in self.public_endpoints)
Beispiel #7
0
def inject_current_user():
    user = LoginFeature().get_current_user(session.get('session_token'))
    return {'current_user': user}
Beispiel #8
0
 def should_redirect_to_dashboard(self):
     login = LoginFeature()
     return (
         login.is_logged(session.get('session_token')) and
         request.endpoint in self.public_endpoints
     )
Beispiel #9
0
 def logout(self):
     LoginFeature().logout(session.get('session_token'))
     session.pop('session_token')
     return redirect('/login')
Beispiel #10
0
 def login(self):
     feature = LoginFeature()
     session['session_token'] = feature.login(
         email=self.data.get('email'), password=self.data.get('password'))
Beispiel #11
0
 def setUp(self):
     self.feature = LoginFeature()
     self.client = app.test_client()
     self.user = RegisterUserFeature().register_user('*****@*****.**', '123456')
Beispiel #12
0
 def __init__(self):
     self.current_user = LoginFeature().get_current_user(
         session.get('session_token'))
Beispiel #13
0
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))
Beispiel #14
0
 def setUp(self):
     self.feature = LoginFeature()
Beispiel #15
0
 def setUp(self):
     self.feature = LoginFeature()
     self.client = app.test_client()
     self.user = RegisterUserFeature().register_user("*****@*****.**", "123456")