コード例 #1
0
    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
コード例 #2
0
    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()
コード例 #3
0
    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']
コード例 #4
0
 def test_password_setter(self):
     "Setting password generates a password hash"
     u = User(password='******')
     assert u.password_hash is not None
コード例 #5
0
 def test_password_salts_are_random(self):
     u = User(password='******')
     u2 = User(password='******')
     assert u.password_hash != u2.password_hash
コード例 #6
0
 def test_password_verification(self):
     u = User(password='******')
     assert u.verify_password('cat') is True
     assert u.verify_password('dog') is False
コード例 #7
0
 def test_no_password_getter(self):
     "Password should not be directly accessible"
     u = User(password='******')
     with pytest.raises(AttributeError):
         u.password  # pylint: disable=W0104