test: add API-level coverage for internal helpers, schemas, and service validation
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import pytest
|
||||
from gatehouse_app.utils.constants import AuthMethodType
|
||||
from gatehouse_app.services.external_auth.models import ExternalAuthError
|
||||
from gatehouse_app.api.v1.external_auth._helpers import (
|
||||
get_provider_type,
|
||||
_get_provider_endpoints,
|
||||
)
|
||||
|
||||
|
||||
class TestProviderType:
|
||||
def test_google(self):
|
||||
assert get_provider_type("google") == AuthMethodType.GOOGLE
|
||||
|
||||
def test_github(self):
|
||||
assert get_provider_type("github") == AuthMethodType.GITHUB
|
||||
|
||||
def test_microsoft(self):
|
||||
assert get_provider_type("microsoft") == AuthMethodType.MICROSOFT
|
||||
|
||||
def test_case_insensitive(self):
|
||||
assert get_provider_type("GitHub") == AuthMethodType.GITHUB
|
||||
|
||||
def test_unknown_provider_raises(self):
|
||||
with pytest.raises(ExternalAuthError) as exc_info:
|
||||
get_provider_type("facebook")
|
||||
assert exc_info.value.status_code == 400
|
||||
assert "facebook" in exc_info.value.message.lower()
|
||||
|
||||
|
||||
class TestProviderEndpoints:
|
||||
def test_google_endpoints(self):
|
||||
auth, token, userinfo = _get_provider_endpoints(AuthMethodType.GOOGLE)
|
||||
assert "accounts.google.com" in auth
|
||||
assert "oauth2.googleapis.com" in token
|
||||
assert "googleapis.com" in userinfo
|
||||
|
||||
def test_github_endpoints(self):
|
||||
auth, token, userinfo = _get_provider_endpoints(AuthMethodType.GITHUB)
|
||||
assert "github.com/login" in auth
|
||||
assert "github.com/login/oauth/access_token" in token
|
||||
assert "api.github.com/user" in userinfo
|
||||
|
||||
def test_microsoft_endpoints(self):
|
||||
auth, token, userinfo = _get_provider_endpoints(AuthMethodType.MICROSOFT)
|
||||
assert "login.microsoftonline.com" in auth
|
||||
assert "login.microsoftonline.com" in token
|
||||
assert "graph.microsoft.com" in userinfo
|
||||
|
||||
def test_unknown_type_raises(self):
|
||||
with pytest.raises(ExternalAuthError) as exc_info:
|
||||
_get_provider_endpoints("nonexistent")
|
||||
assert exc_info.value.status_code == 400
|
||||
Reference in New Issue
Block a user