74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
|
|
import pytest
|
|
|
|
HERE = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
|
|
@pytest.fixture
|
|
def skip_if_no_podman(container_runtime_installed):
|
|
if container_runtime_installed != 'podman':
|
|
pytest.skip('podman container runtime(s) not available')
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_module_run(cli, skip_if_no_podman):
|
|
r = cli(['run', '-m', 'ping','--hosts', 'localhost', os.path.join(HERE, 'priv_data')])
|
|
assert '"ping": "pong"' in r.stdout
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_playbook_run(cli, skip_if_no_podman):
|
|
r = cli(['run', os.path.join(HERE,'priv_data'), '-p', 'test-container.yml'])
|
|
assert 'PLAY RECAP *******' in r.stdout
|
|
assert 'failed=0' in r.stdout
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_provide_env_var(cli, skip_if_no_podman, test_data_dir):
|
|
r = cli(['run', os.path.join(test_data_dir, 'job_env'), '-p', 'printenv.yml'])
|
|
assert 'gifmyvqok2' in r.stdout, r.stdout
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_adhoc_localhost_setup(cli, skip_if_no_podman, container_runtime_installed):
|
|
r = cli(
|
|
[
|
|
'adhoc',
|
|
'--private-data-dir', os.path.join(HERE,'priv_data'),
|
|
'--container-runtime', container_runtime_installed,
|
|
'localhost', '-m', 'setup'
|
|
]
|
|
)
|
|
# TODO: look for some fact that indicates we are in container?
|
|
assert '"ansible_facts": {' in r.stdout
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_playbook_with_private_data_dir(cli, skip_if_no_podman, container_runtime_installed):
|
|
# tests using a private_data_dir in conjunction with an absolute path
|
|
r = cli(
|
|
[
|
|
'playbook',
|
|
'--private-data-dir', os.path.join(HERE,'priv_data'),
|
|
'--container-runtime', container_runtime_installed,
|
|
os.path.join(HERE, 'priv_data/project/test-container.yml')
|
|
]
|
|
)
|
|
assert 'PLAY RECAP *******' in r.stdout
|
|
assert 'failed=0' in r.stdout
|
|
|
|
|
|
@pytest.mark.serial
|
|
def test_playbook_with_relative_path(cli, skip_if_no_podman, container_runtime_installed):
|
|
r = cli(
|
|
[
|
|
'playbook',
|
|
'--container-runtime', container_runtime_installed,
|
|
'test/integration/containerized/priv_data/project/test-container.yml'
|
|
]
|
|
)
|
|
assert 'PLAY RECAP *******' in r.stdout
|
|
assert 'failed=0' in r.stdout
|