def test_generate_confirmation_token(self): # Ensure token is generated and unique timestamp = time.time() token_one = generate_confirmation_token('*****@*****.**', 1, timestamp) token_two = generate_confirmation_token('*****@*****.**', 2, timestamp) self.assertTrue(token_one) self.assertTrue(token_one != token_two)
def test_generate_confirmation_token(self): # Ensure token is generated and unique timestamp = time.time() token_one = generate_confirmation_token( '*****@*****.**', 1, timestamp) token_two = generate_confirmation_token( '*****@*****.**', 2, timestamp) self.assertTrue(token_one) self.assertTrue(token_one != token_two)
def test_expired_confirmation_token(self): # Ensure expired token is invalid timestamp = time.time() token = generate_confirmation_token('*****@*****.**', 1, timestamp) time.sleep(2) # expire token user_info = confirm_token(token, expiration=1) self.assertFalse(user_info)
def test_validate_confirmation_token_not_logged_in(self): # Ensure valid token cannot be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token('*****@*****.**', 1, timestamp) response = self.client.get('/confirm/' + str(token), follow_redirects=True) self.assertEqual(response.status_code, 200) self.assertIn('Sign In', response.data)
def test_expired_confirmation_token(self): # Ensure expired token is invalid timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) time.sleep(2) # expire token user_info = confirm_token(token, expiration=1) self.assertFalse(user_info)
def test_valid_confirmation_token(self): # Ensure token is valid timestamp = time.time() token = generate_confirmation_token('*****@*****.**', 1, timestamp) user_info = confirm_token(token) self.assertEqual(user_info[0], '*****@*****.**') self.assertFalse(user_info[0] == '*****@*****.**') self.assertEqual(user_info[1], 1) self.assertEqual(user_info[2], timestamp)
def test_validate_confirmation_token_not_logged_in(self): # Ensure valid token cannot be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) response = self.client.get( '/confirm/'+str(token), follow_redirects=True) self.assertEqual(response.status_code, 200) self.assertIn('Sign In', response.data)
def test_valid_confirmation_token(self): # Ensure token is valid timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) user_info = confirm_token(token) self.assertEqual(user_info[0], '*****@*****.**') self.assertFalse(user_info[0] == '*****@*****.**') self.assertEqual(user_info[1], 1) self.assertEqual(user_info[2], timestamp)
def test_validate_confirmation_token_invalid_email(self): # Ensure invalid email cannot be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token('*****@*****.**', 1, timestamp) with self.client: self.client.post('/login', data=dict(email='*****@*****.**', password='******'), follow_redirects=True) response = self.client.get('/confirm/' + str(token), follow_redirects=True) user = User() user = user.get('username', '*****@*****.**', g.rdb_conn) self.assertFalse(user.confirmed) self.assertEqual(response.status_code, 200) self.assertIn('Login', response.data) self.assertIn('The confirmation link is invalid', response.data)
def test_validate_confirmation_token(self): # Ensure valid token can be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token('*****@*****.**', 1, timestamp) with self.client: self.client.post('/login', data=dict(email='*****@*****.**', password='******'), follow_redirects=True) response = self.client.get('/confirm/' + str(token), follow_redirects=True) user = User() user = user.get('username', '*****@*****.**', g.rdb_conn) self.assertTrue(user.confirmed) self.assertEqual(response.status_code, 200) self.assertIn('Dashboard', response.data) self.assertIn('You have confirmed your account. Thanks!', response.data)
def test_validate_confirmation_token_invalid_email(self): # Ensure invalid email cannot be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) with self.client: self.client.post('/login', data=dict( email='*****@*****.**', password='******' ), follow_redirects=True) response = self.client.get( '/confirm/'+str(token), follow_redirects=True) user = User() user = user.get('username', '*****@*****.**', g.rdb_conn) self.assertFalse(user.confirmed) self.assertEqual(response.status_code, 200) self.assertIn('Login', response.data) self.assertIn('The confirmation link is invalid', response.data)
def test_validate_confirmation_token(self): # Ensure valid token can be successfully confirmed in the views timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) with self.client: self.client.post('/login', data=dict( email='*****@*****.**', password='******' ), follow_redirects=True) response = self.client.get( '/confirm/'+str(token), follow_redirects=True) user = User() user = user.get('username', '*****@*****.**', g.rdb_conn) self.assertTrue(user.confirmed) self.assertEqual(response.status_code, 200) self.assertIn('Runbooks', response.data) self.assertIn('You have confirmed your account. Thanks!', response.data)
def test_already_confirmed(self): # Ensure user is redirected if already confirmed timestamp = time.time() token = generate_confirmation_token( '*****@*****.**', 1, timestamp) with self.client: self.client.post('/login', data=dict( email='*****@*****.**', password='******' ), follow_redirects=True) user = User() user = user.get('username', '*****@*****.**', g.rdb_conn) r.table('users').get(user.uid).update( {'confirmed': True}).run(g.rdb_conn) response = self.client.get( '/confirm/'+str(token), follow_redirects=True) self.assertEqual(response.status_code, 200) self.assertIn('Runbooks', response.data) self.assertIn('Account already confirmed. Thank you.', response.data)