Fix bug with missing & in authorization URL for OIDC
Also adds testing to ensure we don't break this again
This commit is contained in:
parent
4c0ab81ac8
commit
22a39c3007
8 changed files with 131 additions and 86 deletions
39
oauth/services/test/test_github.py
Normal file
39
oauth/services/test/test_github.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
import pytest
|
||||
|
||||
from oauth.services.github import GithubOAuthService
|
||||
|
||||
@pytest.mark.parametrize('trigger_config, domain, api_endpoint, is_enterprise', [
|
||||
({
|
||||
'CLIENT_ID': 'someclientid',
|
||||
'CLIENT_SECRET': 'someclientsecret',
|
||||
'API_ENDPOINT': 'https://api.github.com/v3',
|
||||
}, 'https://github.com', 'https://api.github.com/v3', False),
|
||||
({
|
||||
'GITHUB_ENDPOINT': 'https://github.somedomain.com/',
|
||||
'CLIENT_ID': 'someclientid',
|
||||
'CLIENT_SECRET': 'someclientsecret',
|
||||
}, 'https://github.somedomain.com', 'https://github.somedomain.com/api/v3', True),
|
||||
({
|
||||
'GITHUB_ENDPOINT': 'https://github.somedomain.com/',
|
||||
'API_ENDPOINT': 'http://somedomain.com/api/',
|
||||
'CLIENT_ID': 'someclientid',
|
||||
'CLIENT_SECRET': 'someclientsecret',
|
||||
}, 'https://github.somedomain.com', 'http://somedomain.com/api', True),
|
||||
])
|
||||
def test_basic_enterprise_config(trigger_config, domain, api_endpoint, is_enterprise):
|
||||
config = {
|
||||
'GITHUB_TRIGGER_CONFIG': trigger_config
|
||||
}
|
||||
|
||||
github_trigger = GithubOAuthService(config, 'GITHUB_TRIGGER_CONFIG')
|
||||
assert github_trigger.is_enterprise() == is_enterprise
|
||||
|
||||
assert github_trigger.authorize_endpoint().to_url() == '%s/login/oauth/authorize' % domain
|
||||
assert github_trigger.authorize_endpoint().to_url_prefix() == '%s/login/oauth/authorize?' % domain
|
||||
|
||||
assert github_trigger.token_endpoint().to_url() == '%s/login/oauth/access_token' % domain
|
||||
|
||||
assert github_trigger.api_endpoint() == api_endpoint
|
||||
assert github_trigger.user_endpoint().to_url() == '%s/user' % api_endpoint
|
||||
assert github_trigger.email_endpoint() == '%s/user/emails' % api_endpoint
|
||||
assert github_trigger.orgs_endpoint() == '%s/user/orgs' % api_endpoint
|
Reference in a new issue