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