mirror of
https://github.com/ansible/awx.git
synced 2024-11-01 16:51:11 +03:00
67 lines
1.5 KiB
Python
67 lines
1.5 KiB
Python
from io import StringIO
|
|
|
|
import pytest
|
|
from requests.exceptions import ConnectionError
|
|
|
|
from awxkit.cli import run, CLI
|
|
|
|
|
|
class MockedCLI(CLI):
|
|
|
|
def fetch_version_root(self):
|
|
pass
|
|
|
|
@property
|
|
def v2(self):
|
|
return MockedCLI()
|
|
|
|
@property
|
|
def json(self):
|
|
return {
|
|
'users': None
|
|
}
|
|
|
|
|
|
@pytest.mark.parametrize('help_param', ['-h', '--help'])
|
|
def test_help(capfd, help_param):
|
|
with pytest.raises(SystemExit):
|
|
run(['awx {}'.format(help_param)])
|
|
out, err = capfd.readouterr()
|
|
|
|
assert "usage:" in out
|
|
for snippet in (
|
|
'--conf.host https://example.awx.org]',
|
|
'-v, --verbose'
|
|
):
|
|
assert snippet in out
|
|
|
|
|
|
def test_connection_error(capfd):
|
|
cli = CLI()
|
|
cli.parse_args(['awx'])
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
|
|
|
|
@pytest.mark.parametrize('resource', ['', 'invalid'])
|
|
def test_list_resources(capfd, resource):
|
|
# if a valid resource isn't specified, print --help
|
|
cli = MockedCLI()
|
|
cli.parse_args(['awx {}'.format(resource)])
|
|
cli.connect()
|
|
|
|
try:
|
|
cli.parse_resource()
|
|
out, err = capfd.readouterr()
|
|
except SystemExit:
|
|
# python2 argparse raises SystemExit for invalid/missing required args,
|
|
# py3 doesn't
|
|
_, out = capfd.readouterr()
|
|
|
|
assert "usage:" in out
|
|
for snippet in (
|
|
'--conf.host https://example.awx.org]',
|
|
'-v, --verbose'
|
|
):
|
|
assert snippet in out
|