blob: f574a725da5b852eb7128da04641f45f4beeac6a [file] [log] [blame]
import pytest
from MassPnfSim import MassPnfSim
from test_settings import SIM_INSTANCES
@pytest.mark.parametrize(('expect_string, cli_opts'), [
("bootstrap: error: the following arguments are required: --urlves, --ipfileserver, --typefileserver, --ipstart",
['bootstrap']),
("bootstrap: error: argument --typefileserver: invalid choice: 'dummy' (choose from 'sftp', 'ftps')",
['bootstrap', '--typefileserver', 'dummy']),
("bootstrap: error: argument --urlves: invalid_url is not a valid URL",
['bootstrap', '--urlves', 'invalid_url']),
("bootstrap: error: argument --ipstart: x.x.x.x is not a valid IP address",
['bootstrap', '--ipstart', 'x.x.x.x']),
("trigger_custom: error: the following arguments are required: --triggerstart, --triggerend",
['trigger_custom'])
])
def test_subcommands(parser, capsys, expect_string, cli_opts):
try:
parser.parse_args(cli_opts)
except SystemExit:
pass
assert expect_string in capsys.readouterr().err
def test_validate_trigger_custom(parser, caplog):
args = parser.parse_args(['trigger_custom', '--triggerstart', '0',
'--triggerend', str(SIM_INSTANCES)])
try:
MassPnfSim(args).trigger_custom()
except SystemExit as e:
assert e.code == 1
assert "--triggerend value greater than existing instance count" in caplog.text
caplog.clear()
@pytest.mark.parametrize(("subcommand"), [
'bootstrap',
'start',
'stop',
'trigger',
'status'
])
def test_count_option(parser, capsys, subcommand):
try:
parser.parse_args([subcommand, '--count'])
except SystemExit:
pass
assert f"{subcommand}: error: argument --count: expected one argument" in capsys.readouterr().err
def test_empty(parser, capsys):
try:
parser.parse_args([])
except SystemExit:
pass
assert '' is capsys.readouterr().err
assert '' is capsys.readouterr().out