66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
import uuid
|
|
|
|
from flask_login import login_user
|
|
|
|
from app import LoginWrappedDBUser
|
|
from data import model
|
|
from auth.cookie import validate_session_cookie
|
|
from test.fixtures import *
|
|
|
|
|
|
def test_anonymous_cookie(app):
|
|
assert validate_session_cookie().missing
|
|
|
|
|
|
def test_invalidformatted_cookie(app):
|
|
# "Login" with a non-UUID reference.
|
|
someuser = model.user.get_user('devtable')
|
|
login_user(LoginWrappedDBUser('somenonuuid', someuser))
|
|
|
|
# Ensure we get an invalid session cookie format error.
|
|
result = validate_session_cookie()
|
|
assert result.authed_user is None
|
|
assert result.context.identity is None
|
|
assert not result.has_nonrobot_user
|
|
assert result.error_message == 'Invalid session cookie format'
|
|
|
|
|
|
def test_disabled_user(app):
|
|
# "Login" with a disabled user.
|
|
someuser = model.user.get_user('disabled')
|
|
login_user(LoginWrappedDBUser(someuser.uuid, someuser))
|
|
|
|
# Ensure we get an invalid session cookie format error.
|
|
result = validate_session_cookie()
|
|
assert result.authed_user is None
|
|
assert result.context.identity is None
|
|
assert not result.has_nonrobot_user
|
|
assert result.error_message == 'User account is disabled'
|
|
|
|
|
|
def test_valid_user(app):
|
|
# Login with a valid user.
|
|
someuser = model.user.get_user('devtable')
|
|
login_user(LoginWrappedDBUser(someuser.uuid, someuser))
|
|
|
|
result = validate_session_cookie()
|
|
assert result.authed_user == someuser
|
|
assert result.context.identity is not None
|
|
assert result.has_nonrobot_user
|
|
assert result.error_message is None
|
|
|
|
|
|
def test_valid_organization(app):
|
|
# "Login" with a valid organization.
|
|
someorg = model.user.get_namespace_user('buynlarge')
|
|
someorg.uuid = str(uuid.uuid4())
|
|
someorg.verified = True
|
|
someorg.save()
|
|
|
|
login_user(LoginWrappedDBUser(someorg.uuid, someorg))
|
|
|
|
result = validate_session_cookie()
|
|
assert result.authed_user is None
|
|
assert result.context.identity is None
|
|
assert not result.has_nonrobot_user
|
|
assert result.error_message == 'Cannot login to organization'
|