Fix a test failure on Python 3.6 (#20030)
* Fix a test failure on Python 3.6 tox -e py36 failed with ====================================================================== ERROR: test_action_base__execute_module (units.plugins.action.test_action.TestActionBase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/mg/src/ansible/test/units/plugins/action/test_action.py", line 507, in test_action_base__execute_module self.assertEqual(action_base._execute_module(), dict(_ansible_parsed=True, rc=0, stdout="ok", stdout_lines=['ok'])) File "/home/mg/src/ansible/lib/ansible/plugins/action/__init__.py", line 596, in _execute_module remote_module_path = self._connection._shell.join_path(tmp, remote_module_filename) File "/home/mg/opt/python36/lib/python3.6/unittest/mock.py", line 939, in __call__ return _mock_self._mock_call(*args, **kwargs) File "/home/mg/opt/python36/lib/python3.6/unittest/mock.py", line 1005, in _mock_call ret_val = effect(*args, **kwargs) File "/home/mg/src/ansible/.tox/py36/lib/python3.6/posixpath.py", line 92, in join genericpath._check_arg_types('join', a, *p) File "/home/mg/src/ansible/.tox/py36/lib/python3.6/genericpath.py", line 149, in _check_arg_types (funcname, s.__class__.__name__)) from None TypeError: join() argument must be str or bytes, not 'MagicMock' because os.path.join() now checks argument types since Python 3.6 (due to pathlib support, I expect). * Use a more realistic module name in test
This commit is contained in:
parent
fafe5bba59
commit
d9b89ca577
1 changed files with 1 additions and 0 deletions
|
@ -464,6 +464,7 @@ class TestActionBase(unittest.TestCase):
|
|||
|
||||
mock_connection = MagicMock()
|
||||
mock_connection.build_module_command.side_effect = build_module_command
|
||||
mock_connection._shell.get_remote_filename.return_value = 'copy.py'
|
||||
mock_connection._shell.join_path.side_effect = os.path.join
|
||||
|
||||
# we're using a real play context here
|
||||
|
|
Loading…
Reference in a new issue