From b9758f5c1ad260a161bbd5576581e41e3554ebff Mon Sep 17 00:00:00 2001 From: John Westcott IV Date: Thu, 9 Sep 2021 12:31:33 -0400 Subject: [PATCH] Adding unit test for no header response --- awx_collection/test/awx/test_module_utils.py | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/awx_collection/test/awx/test_module_utils.py b/awx_collection/test/awx/test_module_utils.py index d5be56d6cc..088b5368a7 100644 --- a/awx_collection/test/awx/test_module_utils.py +++ b/awx_collection/test/awx/test_module_utils.py @@ -24,6 +24,11 @@ def getAWXheader(self, header_name, default): return mock_headers.get(header_name, default) +def getNoheader(self, header_name, default): + mock_headers = {} + return mock_headers.get(header_name, default) + + def read(self): return json.dumps({}) @@ -48,6 +53,14 @@ def mock_awx_ping_response(self, method, url, **kwargs): return r +def mock_no_ping_response(self, method, url, **kwargs): + r = Response() + r.getheader = getNoheader.__get__(r) + r.read = read.__get__(r) + r.status = status.__get__(r) + return r + + def test_version_warning(collection_import, silence_warning): ControllerAPIModule = collection_import('plugins.module_utils.controller_api').ControllerAPIModule cli_data = {'ANSIBLE_MODULE_ARGS': {}} @@ -63,6 +76,21 @@ def test_version_warning(collection_import, silence_warning): ) +def test_no_version_warning(collection_import, silence_warning): + ControllerAPIModule = collection_import('plugins.module_utils.controller_api').ControllerAPIModule + cli_data = {'ANSIBLE_MODULE_ARGS': {}} + testargs = ['module_file2.py', json.dumps(cli_data)] + with mock.patch.object(sys, 'argv', testargs): + with mock.patch('ansible.module_utils.urls.Request.open', new=mock_no_ping_response): + my_module = ControllerAPIModule(argument_spec=dict()) + my_module._COLLECTION_VERSION = "2.0.0" + my_module._COLLECTION_TYPE = "awx" + my_module.get_endpoint('ping') + silence_warning.assert_called_once_with( + 'You are using the {0} version of this collection but connecting to a controller that did not return a version'.format(my_module._COLLECTION_VERSION) + ) + + def test_version_warning_strictness_awx(collection_import, silence_warning): ControllerAPIModule = collection_import('plugins.module_utils.controller_api').ControllerAPIModule cli_data = {'ANSIBLE_MODULE_ARGS': {}}