diff --git a/awx/main/tests/functional/api/test_application_name.py b/awx/main/tests/functional/api/test_application_name.py new file mode 100644 index 0000000000..da7cda210c --- /dev/null +++ b/awx/main/tests/functional/api/test_application_name.py @@ -0,0 +1,23 @@ +import pytest +from awx.settings.application_name import get_service_name, set_application_name + + +@pytest.mark.parametrize( + 'argv,result', + ( + ([], None), + (['-m'], None), + (['-m', 'python'], None), + (['-m', 'python', 'manage'], None), + (['-m', 'python', 'manage', 'a'], 'a'), + (['-m', 'python', 'manage', 'b', 'a'], 'b'), + (['-m', 'python', 'manage', 'run_something', 'b', 'a'], 'something'), + ), +) +def test_get_service_name(argv, result): + assert get_service_name(argv) == result + + +@pytest.mark.parametrize('DATABASES,CLUSTER_ID,function', (({}, 12, ''), ({'default': {'ENGINE': 'sqllite3'}}, 12, ''))) +def test_set_application_name(DATABASES, CLUSTER_ID, function): + set_application_name(DATABASES, CLUSTER_ID, function) diff --git a/awx/settings/application_name.py b/awx/settings/application_name.py index 25c68acfd3..ed76886c39 100644 --- a/awx/settings/application_name.py +++ b/awx/settings/application_name.py @@ -25,6 +25,10 @@ def get_application_name(CLUSTER_HOST_ID, function=''): def set_application_name(DATABASES, CLUSTER_HOST_ID, function=''): + # If settings files were not properly passed DATABASES could be {} at which point we don't need to set the app name. + if not DATABASES or 'default' not in DATABASES: + return + if 'sqlite3' in DATABASES['default']['ENGINE']: return options_dict = DATABASES['default'].setdefault('OPTIONS', dict())