text: # Copyright (c) 2017 Ansible Project
  # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
  
  from __future__ import absolute_import, division, print_function
  __metaclass__ = type
  
  import json
  
  import pytest
  
  from ansible.module_utils.six import string_types
  from ansible.module_utils._text import to_bytes
  from ansible.module_utils.common._collections_compat import MutableMapping
  
  
  @pytest.fixture
  def patch_ansible_module(request, mocker):
      if isinstance(request.param, string_types):
          args = request.param
      elif isinstance(request.param, MutableMapping):
          if 'ANSIBLE_MODULE_ARGS' not in request.param:
              request.param = {'ANSIBLE_MODULE_ARGS': request.param}
          if '_ansible_remote_tmp' not in request.param['ANSIBLE_MODULE_ARGS']:
              request.param['ANSIBLE_MODULE_ARGS']['_ansible_remote_tmp'] = '/tmp'
          if '_ansible_keep_remote_files' not in request.param['ANSIBLE_MODULE_ARGS']:
              request.param['ANSIBLE_MODULE_ARGS']['_ansible_keep_remote_files'] = False
          args = json.dumps(request.param)
      else:
          raise Exception('Malformed data to the patch_ansible_module pytest fixture')
  
      mocker.patch('ansible.module_utils.basic._ANSIBLE_ARGS', to_bytes(args))
  