summaryrefslogtreecommitdiffstats
path: root/test/units/galaxy/test_collection_install.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/galaxy/test_collection_install.py')
-rw-r--r--test/units/galaxy/test_collection_install.py40
1 files changed, 38 insertions, 2 deletions
diff --git a/test/units/galaxy/test_collection_install.py b/test/units/galaxy/test_collection_install.py
index 1803611d9c..6559535f93 100644
--- a/test/units/galaxy/test_collection_install.py
+++ b/test/units/galaxy/test_collection_install.py
@@ -30,6 +30,8 @@ from ansible.module_utils.common.process import get_bin_path
from ansible.utils import context_objects as co
from ansible.utils.display import Display
+import ansible.constants as C
+
class RequirementCandidates():
def __init__(self):
@@ -127,6 +129,7 @@ def test_concrete_artifact_manager_scm_no_executable(monkeypatch):
]
)
def test_concrete_artifact_manager_scm_cmd(url, version, trailing_slash, monkeypatch):
+ context.CLIARGS._store = {'ignore_certs': False}
mock_subprocess_check_call = MagicMock()
monkeypatch.setattr(collection.concrete_artifact_manager.subprocess, 'check_call', mock_subprocess_check_call)
mock_mkdtemp = MagicMock(return_value='')
@@ -141,7 +144,7 @@ def test_concrete_artifact_manager_scm_cmd(url, version, trailing_slash, monkeyp
repo += '/'
git_executable = get_bin_path('git')
- clone_cmd = (git_executable, 'clone', repo, '')
+ clone_cmd = [git_executable, 'clone', repo, '']
assert mock_subprocess_check_call.call_args_list[0].args[0] == clone_cmd
assert mock_subprocess_check_call.call_args_list[1].args[0] == (git_executable, 'checkout', 'commitish')
@@ -158,6 +161,7 @@ def test_concrete_artifact_manager_scm_cmd(url, version, trailing_slash, monkeyp
]
)
def test_concrete_artifact_manager_scm_cmd_shallow(url, version, trailing_slash, monkeypatch):
+ context.CLIARGS._store = {'ignore_certs': False}
mock_subprocess_check_call = MagicMock()
monkeypatch.setattr(collection.concrete_artifact_manager.subprocess, 'check_call', mock_subprocess_check_call)
mock_mkdtemp = MagicMock(return_value='')
@@ -171,12 +175,44 @@ def test_concrete_artifact_manager_scm_cmd_shallow(url, version, trailing_slash,
if trailing_slash:
repo += '/'
git_executable = get_bin_path('git')
- shallow_clone_cmd = (git_executable, 'clone', '--depth=1', repo, '')
+ shallow_clone_cmd = [git_executable, 'clone', '--depth=1', repo, '']
assert mock_subprocess_check_call.call_args_list[0].args[0] == shallow_clone_cmd
assert mock_subprocess_check_call.call_args_list[1].args[0] == (git_executable, 'checkout', 'HEAD')
+@pytest.mark.parametrize(
+ 'ignore_certs_cli,ignore_certs_config,expected_ignore_certs',
+ [
+ (False, False, False),
+ (False, True, True),
+ (True, False, True),
+ ]
+)
+def test_concrete_artifact_manager_scm_cmd_validate_certs(ignore_certs_cli, ignore_certs_config, expected_ignore_certs, monkeypatch):
+ context.CLIARGS._store = {'ignore_certs': ignore_certs_cli}
+ monkeypatch.setattr(C, 'GALAXY_IGNORE_CERTS', ignore_certs_config)
+
+ mock_subprocess_check_call = MagicMock()
+ monkeypatch.setattr(collection.concrete_artifact_manager.subprocess, 'check_call', mock_subprocess_check_call)
+ mock_mkdtemp = MagicMock(return_value='')
+ monkeypatch.setattr(collection.concrete_artifact_manager, 'mkdtemp', mock_mkdtemp)
+
+ url = 'https://github.com/org/repo'
+ version = 'HEAD'
+ collection.concrete_artifact_manager._extract_collection_from_git(url, version, b'path')
+
+ assert mock_subprocess_check_call.call_count == 2
+
+ git_executable = get_bin_path('git')
+ clone_cmd = [git_executable, 'clone', '--depth=1', url, '']
+ if expected_ignore_certs:
+ clone_cmd.extend(['-c', 'http.sslVerify=false'])
+
+ assert mock_subprocess_check_call.call_args_list[0].args[0] == clone_cmd
+ assert mock_subprocess_check_call.call_args_list[1].args[0] == (git_executable, 'checkout', 'HEAD')
+
+
def test_build_requirement_from_path(collection_artifact):
tmp_path = os.path.join(os.path.split(collection_artifact[1])[0], b'temp')
concrete_artifact_cm = collection.concrete_artifact_manager.ConcreteArtifactsManager(tmp_path, validate_certs=False)