示例#1
0
def test_login_view():
    auth, app, user = _get_flask_app()
    client = app.test_client()

    r = client.get(auth.url_sign_in)
    assert u'Sign in' in to_unicode(r.data)

    r = client.post(auth.url_sign_in)
    assert u'<!-- ERROR -->' not in to_unicode(r.data)

    data = {
        '_csrf_token': auth.get_csrf_token(),
    }
    r = client.post(auth.url_sign_in, data=data)
    assert u'<!-- ERROR -->' in to_unicode(r.data)
    assert auth.session_key not in auth.session
示例#2
0
def test_reset_password_default_emailer():
    auth, app, user = _get_flask_app()
    client = app.test_client()

    data = dict(login=user.login, _csrf_token=auth.get_csrf_token())
    resp = client.post(auth.url_reset_password, data=data)
    data = to_unicode(resp.data)
    assert u'<!-- EMAIL SENT -->' in data
示例#3
0
def test_change_password_too_short():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    auth.login(user)
    csrf_token = auth.get_csrf_token()

    r = client.post(auth.url_change_password, data=dict(
        password='******', np1='a', np2='a', _csrf_token=csrf_token))
    data = to_unicode(r.data)
    assert u'<!-- ERROR TOO SHORT -->' in data
示例#4
0
def test_change_password_wrong_current_password():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    auth.login(user)
    csrf_token = auth.get_csrf_token()

    r = client.post(auth.url_change_password, data=dict(
        password='******', np1='lalala', np2='lalala', _csrf_token=csrf_token))
    data = to_unicode(r.data)
    assert u'<!-- ERROR FAIL -->' in data
示例#5
0
def test_change_password_ok():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    auth.login(user)
    csrf_token = auth.get_csrf_token()

    r = client.post(auth.url_change_password, data=dict(
        password='******', np1='lalala', np2='lalala', _csrf_token=csrf_token))
    data = to_unicode(r.data)
    assert u'<!-- PASSWORD UPDATED -->' in data
    assert user.has_password('lalala')
示例#6
0
def test_change_password_mismatch():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    auth.login(user)
    csrf_token = auth.get_csrf_token()

    r = client.post(auth.url_change_password, data=dict(
        password='******', np1='lalalala', np2='a', _csrf_token=csrf_token))
    data = to_unicode(r.data)
    print(data)
    assert u'<!-- ERROR MISMATCH -->' in data
示例#7
0
def test_change_password_too_long():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    auth.login(user)
    csrf_token = auth.get_csrf_token()

    HUGE_PASSWORD = '******' * 5000
    r = client.post(auth.url_change_password, data=dict(
        password='******', np1=HUGE_PASSWORD, np2=HUGE_PASSWORD, _csrf_token=csrf_token))
    data = to_unicode(r.data)
    assert u'<!-- ERROR TOO LONG -->' in data
示例#8
0
def test_login_very_wrong_credentials():
    auth, app, user = _get_flask_app()
    client = app.test_client()

    data = {
        'login': None,
        'password': int,
        '_csrf_token': auth.get_csrf_token(),
    }
    r = client.post(auth.url_sign_in, data=data)
    assert u'<!-- ERROR -->' in to_unicode(r.data)
    assert auth.session_key not in auth.session
示例#9
0
def test_change_password_redir():
    auth, app, user = _get_flask_app()
    client = app.test_client()

    r = client.get(auth.url_change_password)
    assert r.status == '303 SEE OTHER'

    auth.login(user)

    r = client.get(auth.url_change_password)
    data = to_unicode(r.data)
    assert u'Change password' in data
    assert u'current password' in data
示例#10
0
def test_reset_password_wrong_token():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    log = []

    def send_email(user, subject, msg):
        log.append(msg)

    auth.send_email = send_email
    user.get_token()
    r = client.get(auth.url_reset_password + 'xxx/')
    data = to_unicode(r.data)
    print(data)
    assert u'<!-- ERROR WRONG TOKEN -->' in data
示例#11
0
def test_reset_password():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    log = []

    def send_email(user, subject, msg):
        log.append(msg)

    auth.send_email = send_email
    user.get_token()

    r = client.get(auth.url_reset_password)
    data = to_unicode(r.data)
    print(data)
    assert u'Reset password' in data
示例#12
0
def test_reset_password_email_sent():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    log = []

    def send_email(user, subject, msg):
        log.append(msg)

    auth.send_email = send_email
    token = user.get_token()
    data = dict(login=user.login, _csrf_token=auth.get_csrf_token())
    r = client.post(auth.url_reset_password, data=data)
    data = to_unicode(r.data)
    assert u'<!-- EMAIL SENT -->' in data
    print(log)
    assert u'{0}{1}'.format(auth.url_reset_password, token[:5]) in log[0]
示例#13
0
def test_reset_password_wrong_account():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    log = []

    def send_email(user, subject, msg):
        log.append(msg)

    auth.send_email = send_email
    user.get_token()

    data = dict(login=u'nn', _csrf_token=auth.get_csrf_token())
    r = client.post(auth.url_reset_password, data=data)
    data = to_unicode(r.data)
    print(data)
    assert u'<!-- ERROR WRONG USER -->' in data
示例#14
0
def test_reset_password_good_token():
    auth, app, user = _get_flask_app()
    client = app.test_client()
    log = []

    def send_email(user, subject, msg):
        log.append(msg)

    auth.send_email = send_email
    token = user.get_token()
    r = client.get(auth.url_reset_password + token + '/')
    data = to_unicode(r.data)
    assert auth.session_key in auth.session
    assert u'Change password' in data
    assert u'current password' not in data

    r = client.get(auth.url_reset_password)
    assert r.status == '303 SEE OTHER'