"""Tests for authentication module.""" import os import pytest from gitea_mcp.auth import AuthConfig def test_auth_config_success(monkeypatch): """Test successful authentication configuration.""" monkeypatch.setenv("GITEA_API_URL", "http://gitea.example.com/api/v1") monkeypatch.setenv("GITEA_API_TOKEN", "test_token_123") config = AuthConfig() assert config.api_url == "http://gitea.example.com/api/v1" assert config.api_token == "test_token_123" def test_auth_config_removes_trailing_slash(monkeypatch): """Test that trailing slash is removed from URL.""" monkeypatch.setenv("GITEA_API_URL", "http://gitea.example.com/api/v1/") monkeypatch.setenv("GITEA_API_TOKEN", "test_token_123") config = AuthConfig() assert config.api_url == "http://gitea.example.com/api/v1" def test_auth_config_missing_url(monkeypatch): """Test error when GITEA_API_URL is missing.""" monkeypatch.delenv("GITEA_API_URL", raising=False) monkeypatch.setenv("GITEA_API_TOKEN", "test_token_123") with pytest.raises(ValueError, match="GITEA_API_URL"): AuthConfig() def test_auth_config_missing_token(monkeypatch): """Test error when GITEA_API_TOKEN is missing.""" monkeypatch.setenv("GITEA_API_URL", "http://gitea.example.com/api/v1") monkeypatch.delenv("GITEA_API_TOKEN", raising=False) with pytest.raises(ValueError, match="GITEA_API_TOKEN"): AuthConfig() def test_get_auth_headers(monkeypatch): """Test authentication headers generation.""" monkeypatch.setenv("GITEA_API_URL", "http://gitea.example.com/api/v1") monkeypatch.setenv("GITEA_API_TOKEN", "test_token_123") config = AuthConfig() headers = config.get_auth_headers() assert headers["Authorization"] == "token test_token_123" assert headers["Content-Type"] == "application/json"