diff --git a/awx/main/tests/functional/api/test_settings.py b/awx/main/tests/functional/api/test_settings.py index 8a1f50035f..c478b70817 100644 --- a/awx/main/tests/functional/api/test_settings.py +++ b/awx/main/tests/functional/api/test_settings.py @@ -393,3 +393,43 @@ def test_saml_x509cert_validation(patch, get, admin, headers): } }) assert resp.status_code == 200 + + +@pytest.mark.django_db +def test_github_settings(get, put, patch, delete, admin): + url = reverse('api:setting_singleton_detail', kwargs={'category_slug': 'github'}) + get(url, user=admin, expect=200) + delete(url, user=admin, expect=204) + response = get(url, user=admin, expect=200) + data = dict(response.data.items()) + put(url, user=admin, data=data, expect=200) + patch(url, user=admin, data={'SOCIAL_AUTH_GITHUB_KEY': '???'}, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['SOCIAL_AUTH_GITHUB_KEY'] == '???' + data.pop('SOCIAL_AUTH_GITHUB_KEY') + put(url, user=admin, data=data, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['SOCIAL_AUTH_GITHUB_KEY'] == '' + + +@pytest.mark.django_db +def test_github_enterprise_settings(get, put, patch, delete, admin): + url = reverse('api:setting_singleton_detail', kwargs={'category_slug': 'github-enterprise'}) + get(url, user=admin, expect=200) + delete(url, user=admin, expect=204) + response = get(url, user=admin, expect=200) + data = dict(response.data.items()) + put(url, user=admin, data=data, expect=200) + patch(url, user=admin, data={ + 'SOCIAL_AUTH_GITHUB_ENTERPRISE_URL': 'example.com', + 'SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL': 'example.com', + }, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['SOCIAL_AUTH_GITHUB_ENTERPRISE_URL'] == 'example.com' + assert response.data['SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL'] == 'example.com' + data.pop('SOCIAL_AUTH_GITHUB_ENTERPRISE_URL') + data.pop('SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL') + put(url, user=admin, data=data, expect=200) + response = get(url, user=admin, expect=200) + assert response.data['SOCIAL_AUTH_GITHUB_ENTERPRISE_URL'] == '' + assert response.data['SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL'] == '' diff --git a/awx/sso/conf.py b/awx/sso/conf.py index eb944c3052..d7b7ece2fb 100644 --- a/awx/sso/conf.py +++ b/awx/sso/conf.py @@ -863,7 +863,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise URL'), help_text=_('The URL for your Github Enteprise.'), @@ -874,7 +874,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise API URL'), help_text=_('The API URL for your GitHub Enterprise.'), @@ -950,7 +950,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise Organization URL'), help_text=_('The URL for your Github Enteprise.'), @@ -961,7 +961,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_API_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise Organization API URL'), help_text=_('The API URL for your GitHub Enterprise.'), @@ -1050,7 +1050,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise Team URL'), help_text=_('The URL for your Github Enterprise.'), @@ -1061,7 +1061,7 @@ register( register( 'SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_API_URL', field_class=fields.CharField, - allow_blank=False, + allow_blank=True, default='', label=_('GitHub Enterprise Team API URL'), help_text=_('The API URL for your GitHub Enterprise.'),