summaryrefslogtreecommitdiffstats
path: root/tests/units/cli/nrfu
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 08:35:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 08:35:51 +0000
commit641d0d615623d4818993e1967fc96af1eefc4605 (patch)
treec40f205eb559c8a495489262190a0be4f1829740 /tests/units/cli/nrfu
parentAdding upstream version 0.13.0. (diff)
downloadanta-641d0d615623d4818993e1967fc96af1eefc4605.tar.xz
anta-641d0d615623d4818993e1967fc96af1eefc4605.zip
Adding upstream version 0.14.0.upstream/0.14.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/units/cli/nrfu')
-rw-r--r--tests/units/cli/nrfu/__init__.py1
-rw-r--r--tests/units/cli/nrfu/test__init__.py39
-rw-r--r--tests/units/cli/nrfu/test_commands.py59
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