diff --git a/awx/main/tests/functional/dab_feature_flags/test_feature_flags_api.py b/awx/main/tests/functional/dab_feature_flags/test_feature_flags_api.py new file mode 100644 index 0000000000..490b3ac6e1 --- /dev/null +++ b/awx/main/tests/functional/dab_feature_flags/test_feature_flags_api.py @@ -0,0 +1,36 @@ +import pytest +from django.test import override_settings + +from awx.main.models import User + + +@override_settings(FLAGS={}) +@pytest.mark.django_db +def test_feature_flags_list_endpoint(get): + bob = User.objects.create(username='bob', password='test_user', is_superuser=False) + + url = "/api/v2/feature_flags_state/" + response = get(url, user=bob, expect=200) + assert len(response.data) == 0 + + +@override_settings( + FLAGS={ + "FEATURE_SOME_PLATFORM_FLAG_ENABLED": [ + {"condition": "boolean", "value": False}, + {"condition": "before date", "value": "2022-06-01T12:00Z"}, + ], + "FEATURE_SOME_PLATFORM_FLAG_FOO_ENABLED": [ + {"condition": "boolean", "value": True}, + ], + } +) +@pytest.mark.django_db +def test_feature_flags_list_endpoint_override(get): + bob = User.objects.create(username='bob', password='test_user', is_superuser=False) + + url = "/api/v2/feature_flags_state/" + response = get(url, user=bob, expect=200) + assert len(response.data) == 2 + assert response.data["FEATURE_SOME_PLATFORM_FLAG_ENABLED"] is False + assert response.data["FEATURE_SOME_PLATFORM_FLAG_FOO_ENABLED"] is True diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index fffd4e0c19..a71367d4ac 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -366,6 +366,7 @@ INSTALLED_APPS = [ 'ansible_base.jwt_consumer', 'ansible_base.resource_registry', 'ansible_base.rbac', + 'ansible_base.feature_flags', 'flags', ] diff --git a/requirements/requirements_git.txt b/requirements/requirements_git.txt index 843c8cc175..f6c4cc00b8 100644 --- a/requirements/requirements_git.txt +++ b/requirements/requirements_git.txt @@ -1,4 +1,4 @@ git+https://github.com/ansible/system-certifi.git@devel#egg=certifi # Remove pbr from requirements.in when moving ansible-runner to requirements.in git+https://github.com/ansible/python3-saml.git@devel#egg=python3-saml -django-ansible-base @ git+https://github.com/ansible/django-ansible-base@2024.10.17#egg=django-ansible-base[rest_filters,jwt_consumer,resource_registry,rbac] +django-ansible-base @ git+https://github.com/ansible-automation-platform/django-ansible-base@stable-2.5#egg=django-ansible-base[rest-filters,jwt_consumer,resource-registry,rbac,feature-flags]