66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
import pytest
|
|
from requests.exceptions import ConnectionError
|
|
|
|
from awxkit.cli import CLI
|
|
from awxkit import config
|
|
|
|
def test_host_from_environment():
|
|
cli = CLI()
|
|
cli.parse_args(
|
|
['awx'],
|
|
env={'TOWER_HOST': 'https://xyz.local'}
|
|
)
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
assert config.base_url == 'https://xyz.local'
|
|
|
|
def test_host_from_argv():
|
|
cli = CLI()
|
|
cli.parse_args(['awx', '--conf.host', 'https://xyz.local'])
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
assert config.base_url == 'https://xyz.local'
|
|
|
|
def test_username_and_password_from_environment():
|
|
cli = CLI()
|
|
cli.parse_args(
|
|
['awx'],
|
|
env={
|
|
'TOWER_USERNAME': 'mary',
|
|
'TOWER_PASSWORD': 'secret'
|
|
}
|
|
)
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
|
|
assert config.credentials.default.username == 'mary'
|
|
assert config.credentials.default.password == 'secret'
|
|
|
|
def test_username_and_password_argv():
|
|
cli = CLI()
|
|
cli.parse_args([
|
|
'awx', '--conf.username', 'mary', '--conf.password', 'secret'
|
|
])
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
|
|
assert config.credentials.default.username == 'mary'
|
|
assert config.credentials.default.password == 'secret'
|
|
|
|
def test_config_precedence():
|
|
cli = CLI()
|
|
cli.parse_args(
|
|
[
|
|
'awx', '--conf.username', 'mary', '--conf.password', 'secret'
|
|
],
|
|
env={
|
|
'TOWER_USERNAME': 'IGNORE',
|
|
'TOWER_PASSWORD': 'IGNORE'
|
|
}
|
|
)
|
|
with pytest.raises(ConnectionError):
|
|
cli.connect()
|
|
|
|
assert config.credentials.default.username == 'mary'
|
|
assert config.credentials.default.password == 'secret'
|