From 896cc8b36cf5b0b3936f302f3b909f6ad3cfb98d Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Wed, 20 May 2020 06:34:27 -0700 Subject: Add tests for CLI script options Change-Id: Iea4b353b37297e04b686d41b3494b00f61cfb9f3 Issue-ID: INT-1577 Signed-off-by: Bartek Grzybowski --- test/mocks/mass-pnf-sim/test_cli.py | 47 +++++++++++++++++++++++++++++++++++++ test/mocks/mass-pnf-sim/tox.ini | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 test/mocks/mass-pnf-sim/test_cli.py diff --git a/test/mocks/mass-pnf-sim/test_cli.py b/test/mocks/mass-pnf-sim/test_cli.py new file mode 100644 index 000000000..e47b274d3 --- /dev/null +++ b/test/mocks/mass-pnf-sim/test_cli.py @@ -0,0 +1,47 @@ +import MassPnfSim +import pytest + +@pytest.fixture(scope="module") +def parser(): + return MassPnfSim.get_parser() + +@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 + +@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 diff --git a/test/mocks/mass-pnf-sim/tox.ini b/test/mocks/mass-pnf-sim/tox.ini index 98be4b667..7e7ba2cde 100644 --- a/test/mocks/mass-pnf-sim/tox.ini +++ b/test/mocks/mass-pnf-sim/tox.ini @@ -6,7 +6,7 @@ deps = pytest [testenv:pytest] basepython = python3 -commands = pytest +commands = pytest -v [testenv:MassPnfSim-runtime] basepython = python3 -- cgit 1.2.3-korg