Skip to content

Commit 0d4bd79

Browse files
committed
serialization error fix and workflow dispatch button
1 parent 1068c48 commit 0d4bd79

10 files changed

Lines changed: 70 additions & 50 deletions

.github/workflows/ansible-test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010
# This ensures that even if there haven't been commits that we are still testing against latest version of ansible-test for each ansible-base version
1111
schedule:
1212
- cron: '0 6 * * *'
13+
workflow_dispatch:
1314
env:
1415
NAMESPACE: community
1516
COLLECTION_NAME: sap_libs

tests/unit/plugins/modules/test_sap_company.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,22 @@
77
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock
88
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
99

10-
sys.modules['pyrfc'] = MagicMock()
11-
sys.modules['pyrfc.Connection'] = MagicMock()
12-
13-
from ansible_collections.community.sap_libs.plugins.modules import sap_company
14-
1510

1611
class TestSAPRfcModule(ModuleTestCase):
1712

1813
def setUp(self):
14+
self.pyrfc_mock = {
15+
'pyrfc': MagicMock(),
16+
'pyrfc.Connection': MagicMock()
17+
}
18+
self.patcher = patch.dict('sys.modules', self.pyrfc_mock)
19+
self.patcher.start()
1920
super(TestSAPRfcModule, self).setUp()
21+
from ansible_collections.community.sap_libs.plugins.modules import sap_company
2022
self.module = sap_company
2123

2224
def tearDown(self):
25+
self.patcher.stop()
2326
super(TestSAPRfcModule, self).tearDown()
2427

2528
def define_rfc_connect(self, mocker):
@@ -56,7 +59,7 @@ def test_error_user_create(self):
5659
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'E'}]}
5760

5861
with self.assertRaises(AnsibleFailJson) as result:
59-
sap_company.main()
62+
self.module.main()
6063
self.assertEqual(result.exception.args[0]['msg'], 'Something went wrong')
6164

6265
def test_success(self):
@@ -84,7 +87,7 @@ def test_success(self):
8487
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
8588

8689
with self.assertRaises(AnsibleExitJson) as result:
87-
sap_company.main()
90+
self.module.main()
8891
self.assertEqual(result.exception.args[0]['msg'], 'Company address COMP_ID created')
8992

9093
def test_no_changes(self):
@@ -112,7 +115,7 @@ def test_no_changes(self):
112115
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
113116

114117
with self.assertRaises(AnsibleExitJson) as result:
115-
sap_company.main()
118+
self.module.main()
116119
self.assertEqual(result.exception.args[0]['msg'], 'No changes where made.')
117120

118121
def test_absent(self):
@@ -132,5 +135,5 @@ def test_absent(self):
132135
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
133136

134137
with self.assertRaises(AnsibleExitJson) as result:
135-
sap_company.main()
138+
self.module.main()
136139
self.assertEqual(result.exception.args[0]['msg'], 'Company address COMP_ID deleted')

tests/unit/plugins/modules/test_sap_control_exec.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,23 @@
77
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock, Mock
88
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
99

10-
sys.modules['suds.client'] = MagicMock()
11-
sys.modules['suds.sudsobject'] = MagicMock()
12-
sys.modules['suds'] = MagicMock()
13-
14-
from ansible_collections.community.sap_libs.plugins.modules import sap_control_exec
15-
1610

1711
class TestSapcontrolModule(ModuleTestCase):
1812

1913
def setUp(self):
14+
self.suds_mock = {
15+
'suds.client': MagicMock(),
16+
'suds.sudsobject': MagicMock(),
17+
'suds': MagicMock()
18+
}
19+
self.patcher = patch.dict('sys.modules', self.suds_mock)
20+
self.patcher.start()
2021
super(TestSapcontrolModule, self).setUp()
22+
from ansible_collections.community.sap_libs.plugins.modules import sap_control_exec
2123
self.module = sap_control_exec
2224

2325
def tearDown(self):
26+
self.patcher.stop()
2427
super(TestSapcontrolModule, self).tearDown()
2528

2629
def define_rfc_connect(self, mocker):

tests/unit/plugins/modules/test_sap_hdbsql.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from __future__ import absolute_import, division, print_function
77
__metaclass__ = type
88

9-
from ansible_collections.community.sap_libs.plugins.modules import sap_hdbsql
109
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import (
1110
AnsibleExitJson,
1211
AnsibleFailJson,
@@ -28,6 +27,7 @@ class Testsap_hdbsql(ModuleTestCase):
2827
def setUp(self):
2928
"""Setup."""
3029
super(Testsap_hdbsql, self).setUp()
30+
from ansible_collections.community.sap_libs.plugins.modules import sap_hdbsql
3131
self.module = sap_hdbsql
3232
self.mock_get_bin_path = patch.object(basic.AnsibleModule, 'get_bin_path', get_bin_path)
3333
self.mock_get_bin_path.start()
@@ -58,7 +58,7 @@ def test_sap_hdbsql(self):
5858
with patch.object(basic.AnsibleModule, 'run_command') as run_command:
5959
run_command.return_value = 0, 'username,name\n testuser,test user \n myuser, my user \n', ''
6060
with self.assertRaises(AnsibleExitJson) as result:
61-
sap_hdbsql.main()
61+
self.module.main()
6262
self.assertEqual(result.exception.args[0]['query_result'], [[
6363
{'username': 'testuser', 'name': 'test user'},
6464
{'username': 'myuser', 'name': 'my user'},
@@ -80,7 +80,7 @@ def test_hana_userstore_query(self):
8080
with patch.object(basic.AnsibleModule, 'run_command') as run_command:
8181
run_command.return_value = 0, 'username,name\n testuser,test user \n myuser, my user \n', ''
8282
with self.assertRaises(AnsibleExitJson) as result:
83-
sap_hdbsql.main()
83+
self.module.main()
8484
self.assertEqual(result.exception.args[0]['query_result'], [[
8585
{'username': 'testuser', 'name': 'test user'},
8686
{'username': 'myuser', 'name': 'my user'},

tests/unit/plugins/modules/test_sap_pyrfc.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@
1616
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock
1717
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
1818

19-
sys.modules['pyrfc'] = MagicMock()
20-
sys.modules['pyrfc.Connection'] = MagicMock()
21-
from ansible_collections.community.sap_libs.plugins.modules import sap_pyrfc
22-
2319

2420
class TestSAPRfcModule(ModuleTestCase):
2521

2622
def setUp(self):
23+
self.pyrfc_mock = {
24+
'pyrfc': MagicMock(),
25+
'pyrfc.Connection': MagicMock()
26+
}
27+
self.patcher = patch.dict('sys.modules', self.pyrfc_mock)
28+
self.patcher.start()
2729
super(TestSAPRfcModule, self).setUp()
30+
from ansible_collections.community.sap_libs.plugins.modules import sap_pyrfc
2831
self.module = sap_pyrfc
2932

3033
def tearDown(self):
34+
self.patcher.stop()
3135
super(TestSAPRfcModule, self).tearDown()
3236

3337
def test_without_required_parameters(self):

tests/unit/plugins/modules/test_sap_snote.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,22 @@
77
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock, Mock
88
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
99

10-
sys.modules['pyrfc'] = MagicMock()
11-
sys.modules['pyrfc.Connection'] = MagicMock()
12-
13-
from ansible_collections.community.sap_libs.plugins.modules import sap_snote
14-
1510

1611
class TestSAPRfcModule(ModuleTestCase):
1712

1813
def setUp(self):
14+
self.pyrfc_mock = {
15+
'pyrfc': MagicMock(),
16+
'pyrfc.Connection': MagicMock()
17+
}
18+
self.patcher = patch.dict('sys.modules', self.pyrfc_mock)
19+
self.patcher.start()
1920
super(TestSAPRfcModule, self).setUp()
21+
from ansible_collections.community.sap_libs.plugins.modules import sap_snote
2022
self.module = sap_snote
2123

2224
def tearDown(self):
25+
self.patcher.stop()
2326
super(TestSAPRfcModule, self).tearDown()
2427

2528
def define_rfc_connect(self, mocker):

tests/unit/plugins/modules/test_sap_system_facts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
__metaclass__ = type
99

10-
from ansible_collections.community.sap_libs.plugins.modules import sap_system_facts
1110
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, ModuleTestCase
1211
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch
1312
from ansible.module_utils import basic
@@ -24,6 +23,7 @@ class Testsap_system_facts(ModuleTestCase):
2423
def setUp(self):
2524
"""Setup."""
2625
super(Testsap_system_facts, self).setUp()
26+
from ansible_collections.community.sap_libs.plugins.modules import sap_system_facts
2727
self.module = sap_system_facts
2828
self.mock_get_bin_path = patch.object(basic.AnsibleModule, 'get_bin_path', get_bin_path)
2929
self.mock_get_bin_path.start()

tests/unit/plugins/modules/test_sap_task_list_execute.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,24 @@
77
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock
88
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
99

10-
sys.modules['pyrfc'] = MagicMock()
11-
sys.modules['pyrfc.Connection'] = MagicMock()
12-
sys.modules['xmltodict'] = MagicMock()
13-
sys.modules['xmltodict.parse'] = MagicMock()
14-
15-
from ansible_collections.community.sap_libs.plugins.modules import sap_task_list_execute
16-
1710

1811
class TestSAPRfcModule(ModuleTestCase):
1912

2013
def setUp(self):
14+
self.mock_modules = {
15+
'pyrfc': MagicMock(),
16+
'pyrfc.Connection': MagicMock(),
17+
'xmltodict': MagicMock(),
18+
'xmltodict.parse': MagicMock()
19+
}
20+
self.patcher = patch.dict('sys.modules', self.mock_modules)
21+
self.patcher.start()
2122
super(TestSAPRfcModule, self).setUp()
23+
from ansible_collections.community.sap_libs.plugins.modules import sap_task_list_execute
2224
self.module = sap_task_list_execute
2325

2426
def tearDown(self):
27+
self.patcher.stop()
2528
super(TestSAPRfcModule, self).tearDown()
2629

2730
def define_rfc_connect(self, mocker):
@@ -66,7 +69,7 @@ def test_success(self):
6669
'ACTION_MAINTAIN': None}}]}
6770

6871
with self.assertRaises(AnsibleExitJson) as result:
69-
sap_task_list_execute.main()
72+
self.module.main()
7073
self.assertEqual(result.exception.args[0]['out'], {'item': [{'TASK': {'CHECK_STATUS_DESCR': 'Check successfully',
7174
'STATUS_DESCR': 'Executed successfully', 'TASKNAME': 'CL_STCT_CHECK_SEC_CRYPTO',
7275
'LNR': '1', 'DESCRIPTION': 'Check SAP Cryptographic Library', 'DOCU_EXIST': 'X',
@@ -85,5 +88,5 @@ def test_success_no_log(self):
8588
with patch.object(self.module, 'xml_to_dict') as XML:
8689
XML.return_value = "No logs available."
8790
with self.assertRaises(AnsibleExitJson) as result:
88-
sap_task_list_execute.main()
91+
self.module.main()
8992
self.assertEqual(result.exception.args[0]['out'], 'No logs available.')

tests/unit/plugins/modules/test_sap_user.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,22 @@
77
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch, MagicMock
88
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
99

10-
sys.modules['pyrfc'] = MagicMock()
11-
sys.modules['pyrfc.Connection'] = MagicMock()
12-
13-
from ansible_collections.community.sap_libs.plugins.modules import sap_user
14-
1510

1611
class TestSAPRfcModule(ModuleTestCase):
1712

1813
def setUp(self):
14+
self.pyrfc_mock = {
15+
'pyrfc': MagicMock(),
16+
'pyrfc.Connection': MagicMock()
17+
}
18+
self.patcher = patch.dict('sys.modules', self.pyrfc_mock)
19+
self.patcher.start()
1920
super(TestSAPRfcModule, self).setUp()
21+
from ansible_collections.community.sap_libs.plugins.modules import sap_user
2022
self.module = sap_user
2123

2224
def tearDown(self):
25+
self.patcher.stop()
2326
super(TestSAPRfcModule, self).tearDown()
2427

2528
def define_rfc_connect(self, mocker):
@@ -57,7 +60,7 @@ def test_error_user_create(self):
5760
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'E'}]}
5861

5962
with self.assertRaises(AnsibleFailJson) as result:
60-
sap_user.main()
63+
self.module.main()
6164
self.assertEqual(result.exception.args[0]['msg'], 'Something went wrong')
6265

6366
def test_success(self):
@@ -85,7 +88,7 @@ def test_success(self):
8588
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
8689

8790
with self.assertRaises(AnsibleExitJson) as result:
88-
sap_user.main()
91+
self.module.main()
8992
self.assertEqual(result.exception.args[0]['msg'], 'User ADMIN created')
9093

9194
def test_no_changes(self):
@@ -116,7 +119,7 @@ def test_no_changes(self):
116119
DETAIL.return_value = True
117120

118121
with self.assertRaises(AnsibleExitJson) as result:
119-
sap_user.main()
122+
self.module.main()
120123
self.assertEqual(result.exception.args[0]['msg'], 'No changes where made.')
121124

122125
def test_absent(self):
@@ -139,7 +142,7 @@ def test_absent(self):
139142
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
140143

141144
with self.assertRaises(AnsibleExitJson) as result:
142-
sap_user.main()
145+
self.module.main()
143146
self.assertEqual(result.exception.args[0]['msg'], 'User ADMIN deleted')
144147

145148
def test_lock(self):
@@ -162,7 +165,7 @@ def test_lock(self):
162165
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
163166

164167
with self.assertRaises(AnsibleExitJson) as result:
165-
sap_user.main()
168+
self.module.main()
166169
self.assertEqual(result.exception.args[0]['msg'], 'User ADMIN locked')
167170

168171
def test_unlock(self):
@@ -185,5 +188,5 @@ def test_unlock(self):
185188
'PARAMETER': '', 'ROW': 0, 'SYSTEM': '', 'TYPE': 'S'}]}
186189

187190
with self.assertRaises(AnsibleExitJson) as result:
188-
sap_user.main()
191+
self.module.main()
189192
self.assertEqual(result.exception.args[0]['msg'], 'User ADMIN unlocked')

tests/unit/plugins/modules/test_sapcar_extract.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from __future__ import absolute_import, division, print_function
77
__metaclass__ = type
88

9-
from ansible_collections.community.sap_libs.plugins.modules import sapcar_extract
109
from ansible_collections.community.sap_libs.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase, set_module_args
1110
from ansible_collections.community.sap_libs.tests.unit.compat.mock import patch
1211
from ansible.module_utils import basic
@@ -23,6 +22,7 @@ class Testsapcar_extract(ModuleTestCase):
2322
def setUp(self):
2423
"""Setup."""
2524
super(Testsapcar_extract, self).setUp()
25+
from ansible_collections.community.sap_libs.plugins.modules import sapcar_extract
2626
self.module = sapcar_extract
2727
self.mock_get_bin_path = patch.object(basic.AnsibleModule, 'get_bin_path', get_bin_path)
2828
self.mock_get_bin_path.start()
@@ -48,6 +48,6 @@ def test_sapcar_extract(self):
4848
with patch.object(basic.AnsibleModule, 'run_command') as run_command:
4949
run_command.return_value = 0, '', '' # successful execution, no output
5050
with self.assertRaises(AnsibleExitJson) as result:
51-
sapcar_extract.main()
51+
self.module.main()
5252
self.assertTrue(result.exception.args[0]['changed'])
5353
self.assertEqual(run_command.call_count, 1)

0 commit comments

Comments
 (0)