diff options
Diffstat (limited to 'tests/units/cli/nrfu')
-rw-r--r-- | tests/units/cli/nrfu/__init__.py | 1 | ||||
-rw-r--r-- | tests/units/cli/nrfu/test__init__.py | 39 | ||||
-rw-r--r-- | tests/units/cli/nrfu/test_commands.py | 59 |
3 files changed, 36 insertions, 63 deletions
diff --git a/tests/units/cli/nrfu/__init__.py b/tests/units/cli/nrfu/__init__.py index e772bee..db71b4d 100644 --- a/tests/units/cli/nrfu/__init__.py +++ b/tests/units/cli/nrfu/__init__.py @@ -1,3 +1,4 @@ # Copyright (c) 2023-2024 Arista Networks, Inc. # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. +"""Test anta.cli.nrfu submodule.""" diff --git a/tests/units/cli/nrfu/test__init__.py b/tests/units/cli/nrfu/test__init__.py index fea641c..052c7c3 100644 --- a/tests/units/cli/nrfu/test__init__.py +++ b/tests/units/cli/nrfu/test__init__.py @@ -1,33 +1,31 @@ # Copyright (c) 2023-2024 Arista Networks, Inc. # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. -""" -Tests for anta.cli.nrfu -""" +"""Tests for anta.cli.nrfu.""" + from __future__ import annotations -from click.testing import CliRunner +from typing import TYPE_CHECKING from anta.cli import anta from anta.cli.utils import ExitCode from tests.lib.utils import default_anta_env +if TYPE_CHECKING: + from click.testing import CliRunner + # TODO: write unit tests for ignore-status and ignore-error def test_anta_nrfu_help(click_runner: CliRunner) -> None: - """ - Test anta nrfu --help - """ + """Test anta nrfu --help.""" result = click_runner.invoke(anta, ["nrfu", "--help"]) assert result.exit_code == ExitCode.OK assert "Usage: anta nrfu" in result.output def test_anta_nrfu(click_runner: CliRunner) -> None: - """ - Test anta nrfu, catalog is given via env - """ + """Test anta nrfu, catalog is given via env.""" result = click_runner.invoke(anta, ["nrfu"]) assert result.exit_code == ExitCode.OK assert "ANTA Inventory contains 3 devices" in result.output @@ -35,9 +33,7 @@ def test_anta_nrfu(click_runner: CliRunner) -> None: def test_anta_password_required(click_runner: CliRunner) -> None: - """ - Test that password is provided - """ + """Test that password is provided.""" env = default_anta_env() env["ANTA_PASSWORD"] = None result = click_runner.invoke(anta, ["nrfu"], env=env) @@ -47,9 +43,7 @@ def test_anta_password_required(click_runner: CliRunner) -> None: def test_anta_password(click_runner: CliRunner) -> None: - """ - Test that password can be provided either via --password or --prompt - """ + """Test that password can be provided either via --password or --prompt.""" env = default_anta_env() env["ANTA_PASSWORD"] = None result = click_runner.invoke(anta, ["nrfu", "--password", "secret"], env=env) @@ -59,9 +53,7 @@ def test_anta_password(click_runner: CliRunner) -> None: def test_anta_enable_password(click_runner: CliRunner) -> None: - """ - Test that enable password can be provided either via --enable-password or --prompt - """ + """Test that enable password can be provided either via --enable-password or --prompt.""" # Both enable and enable-password result = click_runner.invoke(anta, ["nrfu", "--enable", "--enable-password", "secret"]) assert result.exit_code == ExitCode.OK @@ -78,7 +70,6 @@ def test_anta_enable_password(click_runner: CliRunner) -> None: assert "Please enter a password to enter EOS privileged EXEC mode" not in result.output assert result.exit_code == ExitCode.OK - # enable and enable-password and prompt (redundant) result = click_runner.invoke(anta, ["nrfu", "--enable", "--enable-password", "blah", "--prompt"], input="y\npassword\npassword\n") assert "Is a password required to enter EOS privileged EXEC mode? [y/N]:" not in result.output assert "Please enter a password to enter EOS privileged EXEC mode" not in result.output @@ -91,17 +82,13 @@ def test_anta_enable_password(click_runner: CliRunner) -> None: def test_anta_enable_alone(click_runner: CliRunner) -> None: - """ - Test that enable can be provided either without enable-password - """ + """Test that enable can be provided either without enable-password.""" result = click_runner.invoke(anta, ["nrfu", "--enable"]) assert result.exit_code == ExitCode.OK def test_disable_cache(click_runner: CliRunner) -> None: - """ - Test that disable_cache is working on inventory - """ + """Test that disable_cache is working on inventory.""" result = click_runner.invoke(anta, ["nrfu", "--disable-cache"]) stdout_lines = result.stdout.split("\n") # All caches should be disabled from the inventory diff --git a/tests/units/cli/nrfu/test_commands.py b/tests/units/cli/nrfu/test_commands.py index 4639671..4ea40b7 100644 --- a/tests/units/cli/nrfu/test_commands.py +++ b/tests/units/cli/nrfu/test_commands.py @@ -1,97 +1,82 @@ # Copyright (c) 2023-2024 Arista Networks, Inc. # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. -""" -Tests for anta.cli.nrfu.commands -""" +"""Tests for anta.cli.nrfu.commands.""" + from __future__ import annotations import json import re from pathlib import Path - -from click.testing import CliRunner +from typing import TYPE_CHECKING from anta.cli import anta from anta.cli.utils import ExitCode +if TYPE_CHECKING: + from click.testing import CliRunner + DATA_DIR: Path = Path(__file__).parent.parent.parent.parent.resolve() / "data" def test_anta_nrfu_table_help(click_runner: CliRunner) -> None: - """ - Test anta nrfu table --help - """ + """Test anta nrfu table --help.""" result = click_runner.invoke(anta, ["nrfu", "table", "--help"]) assert result.exit_code == ExitCode.OK assert "Usage: anta nrfu table" in result.output def test_anta_nrfu_text_help(click_runner: CliRunner) -> None: - """ - Test anta nrfu text --help - """ + """Test anta nrfu text --help.""" result = click_runner.invoke(anta, ["nrfu", "text", "--help"]) assert result.exit_code == ExitCode.OK assert "Usage: anta nrfu text" in result.output def test_anta_nrfu_json_help(click_runner: CliRunner) -> None: - """ - Test anta nrfu json --help - """ + """Test anta nrfu json --help.""" result = click_runner.invoke(anta, ["nrfu", "json", "--help"]) assert result.exit_code == ExitCode.OK assert "Usage: anta nrfu json" in result.output def test_anta_nrfu_template_help(click_runner: CliRunner) -> None: - """ - Test anta nrfu tpl-report --help - """ + """Test anta nrfu tpl-report --help.""" result = click_runner.invoke(anta, ["nrfu", "tpl-report", "--help"]) assert result.exit_code == ExitCode.OK assert "Usage: anta nrfu tpl-report" in result.output def test_anta_nrfu_table(click_runner: CliRunner) -> None: - """ - Test anta nrfu, catalog is given via env - """ + """Test anta nrfu, catalog is given via env.""" result = click_runner.invoke(anta, ["nrfu", "table"]) assert result.exit_code == ExitCode.OK assert "dummy │ VerifyEOSVersion │ success" in result.output def test_anta_nrfu_text(click_runner: CliRunner) -> None: - """ - Test anta nrfu, catalog is given via env - """ + """Test anta nrfu, catalog is given via env.""" result = click_runner.invoke(anta, ["nrfu", "text"]) assert result.exit_code == ExitCode.OK assert "dummy :: VerifyEOSVersion :: SUCCESS" in result.output def test_anta_nrfu_json(click_runner: CliRunner) -> None: - """ - Test anta nrfu, catalog is given via env - """ + """Test anta nrfu, catalog is given via env.""" result = click_runner.invoke(anta, ["nrfu", "json"]) assert result.exit_code == ExitCode.OK - assert "JSON results of all tests" in result.output - m = re.search(r"\[\n {[\s\S]+ }\n\]", result.output) - assert m is not None - result_list = json.loads(m.group()) - for r in result_list: - if r["name"] == "dummy": - assert r["test"] == "VerifyEOSVersion" - assert r["result"] == "success" + assert "JSON results" in result.output + match = re.search(r"\[\n {[\s\S]+ }\n\]", result.output) + assert match is not None + result_list = json.loads(match.group()) + for res in result_list: + if res["name"] == "dummy": + assert res["test"] == "VerifyEOSVersion" + assert res["result"] == "success" def test_anta_nrfu_template(click_runner: CliRunner) -> None: - """ - Test anta nrfu, catalog is given via env - """ + """Test anta nrfu, catalog is given via env.""" result = click_runner.invoke(anta, ["nrfu", "tpl-report", "--template", str(DATA_DIR / "template.j2")]) assert result.exit_code == ExitCode.OK assert "* VerifyEOSVersion is SUCCESS for dummy" in result.output |