From ce0d176508b82d23efc320532f65707c0fdf30a8 Mon Sep 17 00:00:00 2001 From: Hao Liu <44379968+TheRealHaoLiu@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:46:53 -0400 Subject: [PATCH] Fix analytic ship (#6679) REDHAT_USERNAME and REDHAT_PASSWORD are default to empty string instead of None --- awx/main/analytics/core.py | 2 +- .../tests/functional/analytics/test_core.py | 35 ++++++++++++------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/awx/main/analytics/core.py b/awx/main/analytics/core.py index 8ad6bb1d90..1195b262ba 100644 --- a/awx/main/analytics/core.py +++ b/awx/main/analytics/core.py @@ -368,7 +368,7 @@ def ship(path): rh_user = getattr(settings, 'REDHAT_USERNAME', None) rh_password = getattr(settings, 'REDHAT_PASSWORD', None) - if rh_user is None or rh_password is None: + if not rh_user or not rh_password: logger.info('REDHAT_USERNAME and REDHAT_PASSWORD are not set, using SUBSCRIPTIONS_USERNAME and SUBSCRIPTIONS_PASSWORD') rh_user = getattr(settings, 'SUBSCRIPTIONS_USERNAME', None) rh_password = getattr(settings, 'SUBSCRIPTIONS_PASSWORD', None) diff --git a/awx/main/tests/functional/analytics/test_core.py b/awx/main/tests/functional/analytics/test_core.py index d9c87ceab9..67f66900a6 100644 --- a/awx/main/tests/functional/analytics/test_core.py +++ b/awx/main/tests/functional/analytics/test_core.py @@ -82,18 +82,18 @@ def mock_analytic_post(): @pytest.mark.parametrize( "setting_map, expected_result, expected_auth", [ - # Test case 1: Valid Red Hat credentials + # Valid Red Hat credentials ( { 'REDHAT_USERNAME': 'redhat_user', 'REDHAT_PASSWORD': 'redhat_pass', # NOSONAR - 'SUBSCRIPTIONS_USERNAME': None, - 'SUBSCRIPTIONS_PASSWORD': None, + 'SUBSCRIPTIONS_USERNAME': '', + 'SUBSCRIPTIONS_PASSWORD': '', }, True, ('redhat_user', 'redhat_pass'), ), - # Test case 2: Valid Subscription credentials + # Valid Subscription credentials with no Red Hat credentials ( { 'REDHAT_USERNAME': None, @@ -104,24 +104,35 @@ def mock_analytic_post(): True, ('subs_user', 'subs_pass'), ), - # Test case 3: No credentials + # Valid Subscription credentials with empty Red Hat credentials ( { - 'REDHAT_USERNAME': None, - 'REDHAT_PASSWORD': None, - 'SUBSCRIPTIONS_USERNAME': None, - 'SUBSCRIPTIONS_PASSWORD': None, + 'REDHAT_USERNAME': '', + 'REDHAT_PASSWORD': '', + 'SUBSCRIPTIONS_USERNAME': 'subs_user', + 'SUBSCRIPTIONS_PASSWORD': 'subs_pass', # NOSONAR + }, + True, + ('subs_user', 'subs_pass'), + ), + # No credentials + ( + { + 'REDHAT_USERNAME': '', + 'REDHAT_PASSWORD': '', + 'SUBSCRIPTIONS_USERNAME': '', + 'SUBSCRIPTIONS_PASSWORD': '', }, False, None, # No request should be made ), - # Test case 4: Mixed credentials + # Mixed credentials ( { - 'REDHAT_USERNAME': None, + 'REDHAT_USERNAME': '', 'REDHAT_PASSWORD': 'redhat_pass', # NOSONAR 'SUBSCRIPTIONS_USERNAME': 'subs_user', - 'SUBSCRIPTIONS_PASSWORD': None, + 'SUBSCRIPTIONS_PASSWORD': '', }, False, None, # Invalid, no request should be made