Exemple #1
0
def test_did_you_mean_playbook():
    """ Test adhoc with yml file as argument parameter"""
    adhoc_cli = AdHocCLI(['/bin/ansible', '-m', 'command', 'localhost.yml'])
    adhoc_cli.parse()
    with pytest.raises(AnsibleOptionsError) as exec_info:
        adhoc_cli.run()
    assert 'No argument passed to command module (did you mean to run ansible-playbook?)' == str(exec_info.value)
Exemple #2
0
def test_no_argument():
    """ Test no argument command"""
    adhoc_cli = AdHocCLI(['/bin/ansible', '-m', 'command', 'localhost'])
    adhoc_cli.parse()
    with pytest.raises(AnsibleOptionsError) as exec_info:
        adhoc_cli.run()
    assert 'No argument passed to command module' == str(exec_info.value)
Exemple #3
0
def test_ansible_version(capsys, mocker):
    adhoc_cli = AdHocCLI(args=['/bin/ansible', '--version'])
    with pytest.raises(SystemExit):
        adhoc_cli.run()
    version = capsys.readouterr()
    try:
        version_lines = version.out.splitlines()
    except AttributeError:
        # Python 2.6 does return a named tuple, so get the first item
        version_lines = version[0].splitlines()

    assert len(
        version_lines
    ) == 6, 'Incorrect number of lines in "ansible --version" output'
    assert re.match(
        'ansible [0-9.a-z]+$', version_lines[0]
    ), 'Incorrect ansible version line in "ansible --version" output'
    assert re.match(
        '  config file = .*$', version_lines[1]
    ), 'Incorrect config file line in "ansible --version" output'
    assert re.match(
        '  configured module search path = .*$', version_lines[2]
    ), 'Incorrect module search path in "ansible --version" output'
    assert re.match(
        '  ansible python module location = .*$', version_lines[3]
    ), 'Incorrect python module location in "ansible --version" output'
    assert re.match(
        '  executable location = .*$', version_lines[4]
    ), 'Incorrect executable locaction in "ansible --version" output'
    assert re.match('  python version = .*$', version_lines[5]
                    ), 'Incorrect python version in "ansible --version" output'
Exemple #4
0
def test_run_import_playbook():
    """ Test import_playbook which is not allowed with ad-hoc command"""
    import_playbook = 'import_playbook'
    adhoc_cli = AdHocCLI(args=['/bin/ansible', '-m', import_playbook, 'localhost'])
    adhoc_cli.parse()
    with pytest.raises(AnsibleOptionsError) as exec_info:
        adhoc_cli.run()
    assert context.CLIARGS['module_name'] == import_playbook
    assert "'%s' is not a valid action for ad-hoc commands" % import_playbook == str(exec_info.value)
Exemple #5
0
def test_simple_command():
    """ Test valid command and its run"""
    adhoc_cli = AdHocCLI(
        ['/bin/ansible', '-m', 'command', 'localhost', '-a', 'echo "hi"'])
    adhoc_cli.parse()
    ret = adhoc_cli.run()
    assert ret == 0
def test_simple_command():
    """ Test valid command and its run"""
    adhoc_cli = AdHocCLI(['/bin/ansible', '-m', 'command', 'localhost'])
    adhoc_cli.parse()
    adhoc_cli.options.module_args = "echo 'hi'"
    ret = adhoc_cli.run()
    assert ret == 0
Exemple #7
0
 def test(self, target):
     os.chdir(self.wd)
     # need to chdir before importing!
     from ansible.cli.adhoc import AdHocCLI
     cli = AdHocCLI(
         [
             sys.argv[0],
             '-i', 'inventory',
             target,
             '-m', 'ping',
             '-o'
         ]
     )
     cli.parse()
     exit = cli.run()
     os.chdir(self.pwd)
     return exit == 0