Created
May 8, 2020 22:00
-
-
Save tadeboro/9d4d9229ce23b943d6a1e75ef05a7147 to your computer and use it in GitHub Desktop.
Testing AnsibleModule._set_cwd method
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
# (c) 2020, 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 pytest | |
@pytest.mark.parametrize('stdin', [{}], indirect=True) | |
def test_cwd_is_acceptable(am, mocker, tmpdir): | |
ok_dir = tmpdir.mkdir('ok_dir') | |
mocker.patch('os.getcwd').return_value = str(ok_dir) | |
assert str(ok_dir) == am._set_cwd() | |
@pytest.mark.parametrize('stdin', [{}], indirect=True) | |
def test_cwd_not_executable(am, mocker, tmpdir): | |
bad_dir = tmpdir.mkdir('bad_dir') | |
bad_dir.chmod(0o444) # Executable bit not set | |
mocker.patch('os.getcwd').return_value = str(bad_dir) | |
assert str(bad_dir) != am._set_cwd() | |
@pytest.mark.parametrize('stdin', [{}], indirect=True) | |
def test_cwd_tmpdir_not_executable(am, mocker, tmpdir): | |
bad_dir = tmpdir.mkdir('bad_dir') | |
bad_dir.chmod(0o444) # Executable bit not set | |
bad_dir_str = str(bad_dir) | |
mocker.patch('os.getcwd').return_value = bad_dir_str | |
am._tmpdir = bad_dir_str | |
assert str(bad_dir) != am._set_cwd() | |
@pytest.mark.parametrize('stdin', [{}], indirect=True) | |
def test_cwd_tmpdir_home_not_executable(am, mocker, tmpdir): | |
bad_dir = tmpdir.mkdir('bad_dir') | |
bad_dir.chmod(0o444) # Executable bit not set | |
bad_dir_str = str(bad_dir) | |
mocker.patch('os.getcwd').return_value = bad_dir_str | |
am._tmpdir = bad_dir_str | |
mocker.patch('os.path.expandvars').return_value = bad_dir_str | |
assert bad_dir_str != am._set_cwd() | |
@pytest.mark.parametrize('stdin', [{}], indirect=True) | |
def test_cwd_tmpdir_home_tempdir_not_executable(am, mocker, tmpdir): | |
bad_dir = tmpdir.mkdir('bad_dir') | |
bad_dir.chmod(0o444) # Executable bit not set | |
bad_dir_str = str(bad_dir) | |
mocker.patch('os.getcwd').return_value = bad_dir_str | |
am._tmpdir = bad_dir_str | |
mocker.patch('os.path.expandvars').return_value = bad_dir_str | |
mocker.patch('tempfile.gettempdir').return_value = bad_dir_str | |
assert am._set_cwd() is None |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment