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'