"""Test OAuth configuration schema.""" import pytest from nanobot.config.schema import ProviderConfig, OAuthCredentials def test_provider_config_has_oauth_fields(): """ProviderConfig should have oauth_credentials field.""" config = ProviderConfig(api_key="test") assert hasattr(config, "oauth_credentials") assert config.oauth_credentials is None def test_oauth_credentials_model(): """OAuthCredentials should store token, refresh, expiry.""" creds = OAuthCredentials( access_token="sk-ant-oat01-xxx", refresh_token="rt_xxx", expires_at=1234567890, token_type="oauth" ) assert creds.access_token.startswith("sk-ant-oat") assert creds.is_oauth_token is True def test_oauth_credentials_expiry_check(): """OAuthCredentials should detect expired tokens.""" import time expired = OAuthCredentials( access_token="sk-ant-oat01-xxx", expires_at=int(time.time()) - 3600 # 1 hour ago ) assert expired.is_expired is True valid = OAuthCredentials( access_token="sk-ant-oat01-xxx", expires_at=int(time.time()) + 3600 # 1 hour from now ) assert valid.is_expired is False def test_oauth_credentials_no_expiry(): """Setup tokens with expires_at=0 should never be expired.""" creds = OAuthCredentials( access_token="sk-ant-oat01-xxx", expires_at=0 # No expiry (setup-token) ) assert creds.is_expired is False assert creds.expires_soon is False