146 lines
4.4 KiB
Python
146 lines
4.4 KiB
Python
import os
|
|
|
|
from common import exec_command
|
|
from dcos.api import util
|
|
|
|
|
|
def test_help():
|
|
returncode, stdout, stderr = exec_command(['dcos', '--help'])
|
|
|
|
assert returncode == 0
|
|
assert stdout == b"""Usage:
|
|
dcos [options] <command> [<args>...]
|
|
|
|
Options:
|
|
--help Show this screen
|
|
--version Show version
|
|
--log-level=<log-level> If set then print supplementary messages to
|
|
stderr at or above this level. The severity
|
|
levels in the order of severity are: debug,
|
|
info, warning, error, and critical. E.g.
|
|
Setting the option to warning will print
|
|
warning, error and critical messages to stderr.
|
|
Note: that this does not affect the output sent
|
|
to stdout by the command.
|
|
|
|
Environment Variables:
|
|
DCOS_LOG_LEVEL If set then it specifies that message should be
|
|
printed to stderr at or above this level. See
|
|
the --log-level option for details.
|
|
|
|
DCOS_CONFIG This environment variable points to the
|
|
location of the DCOS configuration file.
|
|
|
|
'dcos help --all' lists all available subcommands. See 'dcos <command> --help'
|
|
to read about a specific subcommand.
|
|
"""
|
|
assert stderr == b''
|
|
|
|
|
|
def test_version():
|
|
returncode, stdout, stderr = exec_command(['dcos', '--version'])
|
|
|
|
assert returncode == 0
|
|
assert stdout == b'dcos version 0.1.0\n'
|
|
assert stderr == b''
|
|
|
|
|
|
def test_missing_dcos_config():
|
|
env = {
|
|
'PATH': os.environ['PATH'],
|
|
'DCOS_PATH': os.environ['DCOS_PATH'],
|
|
}
|
|
|
|
returncode, stdout, stderr = exec_command(['dcos'], env=env)
|
|
|
|
assert returncode == 1
|
|
assert stdout == (b"Environment variable 'DCOS_CONFIG' must be set "
|
|
b"to the DCOS config file.\n")
|
|
assert stderr == b''
|
|
|
|
|
|
def test_dcos_config_not_a_file():
|
|
env = {
|
|
'PATH': os.environ['PATH'],
|
|
'DCOS_PATH': os.environ['DCOS_PATH'],
|
|
'DCOS_CONFIG': 'missing/file',
|
|
}
|
|
|
|
returncode, stdout, stderr = exec_command(['dcos'], env=env)
|
|
|
|
assert returncode == 1
|
|
assert stdout == (b"Environment variable 'DCOS_CONFIG' maps to "
|
|
b"'missing/file' and it is not a file.\n")
|
|
assert stderr == b''
|
|
|
|
|
|
def test_missing_dcos_path():
|
|
env = {
|
|
'PATH': os.environ['PATH'],
|
|
'DCOS_CONFIG': os.environ['DCOS_CONFIG'],
|
|
}
|
|
|
|
returncode, stdout, stderr = exec_command(['dcos'], env=env)
|
|
|
|
assert returncode == 1
|
|
assert stdout == (b"Environment variable 'DCOS_PATH' not set to the DCOS "
|
|
b"CLI path.\n")
|
|
assert stderr == b''
|
|
|
|
|
|
def test_dcos_path_not_a_dir():
|
|
env = {
|
|
'PATH': os.environ['PATH'],
|
|
'DCOS_CONFIG': os.environ['DCOS_CONFIG'],
|
|
'DCOS_PATH': 'missing/dir',
|
|
}
|
|
|
|
returncode, stdout, stderr = exec_command(['dcos'], env=env)
|
|
|
|
assert returncode == 1
|
|
assert stdout == (b"Environment variable 'DCOS_PATH' maps to "
|
|
b"'missing/dir' which is not a directory.\n")
|
|
assert stderr == b''
|
|
|
|
|
|
def test_missing_path():
|
|
env = {
|
|
'DCOS_CONFIG': os.environ['DCOS_CONFIG'],
|
|
'DCOS_PATH': os.environ['DCOS_PATH'],
|
|
}
|
|
|
|
returncode, stdout, stderr = exec_command([util.which('dcos')], env=env)
|
|
|
|
assert returncode == 1
|
|
assert stdout == b"Environment variable 'PATH' not set.\n"
|
|
assert stderr == b''
|
|
|
|
|
|
def test_log_level_flag():
|
|
returncode, stdout, stderr = exec_command(
|
|
['dcos', '--log-level=info', 'config', 'info'])
|
|
|
|
assert returncode == 0
|
|
assert stdout == b"Get and set DCOS command line options\n"
|
|
assert stderr == b''
|
|
|
|
|
|
def test_capital_log_level_flag():
|
|
returncode, stdout, stderr = exec_command(
|
|
['dcos', '--log-level=INFO', 'config', 'info'])
|
|
|
|
assert returncode == 0
|
|
assert stdout == b"Get and set DCOS command line options\n"
|
|
assert stderr == b''
|
|
|
|
|
|
def test_invalid_log_level_flag():
|
|
returncode, stdout, stderr = exec_command(
|
|
['dcos', '--log-level=blah', 'config', 'info'])
|
|
|
|
assert returncode == 1
|
|
assert stdout == (b"Log level set to an unknown value 'blah'. Valid "
|
|
b"values are ['debug', 'info', 'warning', 'error', "
|
|
b"'critical']\n")
|
|
assert stderr == b''
|