"""认证模块测试。"""

import pytest
from butler.security.auth import is_authorized, check_user_permission


def test_is_authorized_with_empty_whitelist():
    """空白名单允许所有用户。"""
    assert is_authorized("any_user", []) is True


def test_is_authorized_with_whitelist():
    """白名单限制访问。"""
    whitelist = ["user123", "user456"]
    assert is_authorized("user123", whitelist) is True
    assert is_authorized("user789", whitelist) is False


def test_check_user_permission_allowed():
    """允许的用户通过检查。"""
    result, msg = check_user_permission("user123", ["user123"])
    assert result is True
    assert msg is None


def test_check_user_permission_denied():
    """禁止的用户被拒绝。"""
    result, msg = check_user_permission("user789", ["user123"])
    assert result is False
    assert "无权限" in msg
