def test_user_activate(self, client, db): # Registers a user res = client.get(url_for('auth.register'), status=200) user = User(email="*****@*****.**", username='******') form = fill_register_form(res.forms['register-form'], user) res = form.submit().follow() # Registered user is not verified user = User.find_by_email(user.email) assert not user.verified # Activate token is created for registered user assert user.activate_token # An invalid user/token combination does not verify the user res = client.get( url_for('auth.activate', userid=user.id, activate_token="moop")) assert not user.verified # A valid user/token combination verifies the user res = client.get( url_for('auth.activate', userid=user.id, activate_token=user.activate_token)) assert user.verified
def setUp(self): self.db_fd, app.config['DATABASE'] = tempfile.mkstemp() app.testing = True self.app = app.test_client() with app.app_context(): init_db() self.user = User('test', 'password') db_session.add(self.user) db_session.commit()
def test_register(self, client, db): # Go to register page res = client.get(url_for('auth.register'), status=200) # Register form successfully submits and redirects user = User(email="*****@*****.**", username='******') form = fill_register_form(res.forms['register-form'], user) res = form.submit().follow() # Register-form is no longer displayed assert not res.forms.get('register-form') # Registered user persists in the database assert User.find_by_email(user.email) # Cannot register same user twice. Register-form should still be displayed res = client.get(url_for('auth.register'), status=200) res = fill_register_form(res.forms['register-form'], user).submit() assert res.forms['register-form']
def test_password_setter(self): "Setting password generates a password hash" u = User(password='******') assert u.password_hash is not None
def test_password_salts_are_random(self): u = User(password='******') u2 = User(password='******') assert u.password_hash != u2.password_hash
def test_password_verification(self): u = User(password='******') assert u.verify_password('cat') is True assert u.verify_password('dog') is False
def test_no_password_getter(self): "Password should not be directly accessible" u = User(password='******') with pytest.raises(AttributeError): u.password # pylint: disable=W0104