summaryrefslogtreecommitdiffstats
path: root/anta/tests/profiles.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 08:36:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 08:36:50 +0000
commit7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625 (patch)
treef36d2006dd01bd01a069956741d831d9d5633377 /anta/tests/profiles.py
parentAdding debian version 0.13.0-1. (diff)
downloadanta-7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625.tar.xz
anta-7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625.zip
Merging upstream version 0.14.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'anta/tests/profiles.py')
-rw-r--r--anta/tests/profiles.py72
1 files changed, 52 insertions, 20 deletions
diff --git a/anta/tests/profiles.py b/anta/tests/profiles.py
index a0ed6d7..859c886 100644
--- a/anta/tests/profiles.py
+++ b/anta/tests/profiles.py
@@ -1,36 +1,53 @@
# 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 functions related to ASIC profiles
-"""
+"""Module related to ASIC profile tests."""
+
# Mypy does not understand AntaTest.Input typing
# mypy: disable-error-code=attr-defined
from __future__ import annotations
-from typing import Literal
+from typing import TYPE_CHECKING, ClassVar, Literal
from anta.decorators import skip_on_platforms
from anta.models import AntaCommand, AntaTest
+if TYPE_CHECKING:
+ from anta.models import AntaTemplate
+
class VerifyUnifiedForwardingTableMode(AntaTest):
- """
- Verifies the device is using the expected Unified Forwarding Table mode.
+ """Verifies the device is using the expected UFT (Unified Forwarding Table) mode.
+
+ Expected Results
+ ----------------
+ * Success: The test will pass if the device is using the expected UFT mode.
+ * Failure: The test will fail if the device is not using the expected UFT mode.
+
+ Examples
+ --------
+ ```yaml
+ anta.tests.profiles:
+ - VerifyUnifiedForwardingTableMode:
+ mode: 3
+ ```
"""
name = "VerifyUnifiedForwardingTableMode"
- description = ""
- categories = ["profiles"]
- commands = [AntaCommand(command="show platform trident forwarding-table partition", ofmt="json")]
+ description = "Verifies the device is using the expected UFT mode."
+ categories: ClassVar[list[str]] = ["profiles"]
+ commands: ClassVar[list[AntaCommand | AntaTemplate]] = [AntaCommand(command="show platform trident forwarding-table partition", revision=1)]
+
+ class Input(AntaTest.Input):
+ """Input model for the VerifyUnifiedForwardingTableMode test."""
- class Input(AntaTest.Input): # pylint: disable=missing-class-docstring
mode: Literal[0, 1, 2, 3, 4, "flexible"]
- """Expected UFT mode"""
+ """Expected UFT mode. Valid values are 0, 1, 2, 3, 4, or "flexible"."""
- @skip_on_platforms(["cEOSLab", "vEOS-lab"])
+ @skip_on_platforms(["cEOSLab", "vEOS-lab", "cEOSCloudLab"])
@AntaTest.anta_test
def test(self) -> None:
+ """Main test function for VerifyUnifiedForwardingTableMode."""
command_output = self.instance_commands[0].json_output
if command_output["uftMode"] == str(self.inputs.mode):
self.result.is_success()
@@ -39,22 +56,37 @@ class VerifyUnifiedForwardingTableMode(AntaTest):
class VerifyTcamProfile(AntaTest):
- """
- Verifies the device is using the configured TCAM profile.
+ """Verifies that the device is using the provided Ternary Content-Addressable Memory (TCAM) profile.
+
+ Expected Results
+ ----------------
+ * Success: The test will pass if the provided TCAM profile is actually running on the device.
+ * Failure: The test will fail if the provided TCAM profile is not running on the device.
+
+ Examples
+ --------
+ ```yaml
+ anta.tests.profiles:
+ - VerifyTcamProfile:
+ profile: vxlan-routing
+ ```
"""
name = "VerifyTcamProfile"
- description = "Verify that the assigned TCAM profile is actually running on the device"
- categories = ["profiles"]
- commands = [AntaCommand(command="show hardware tcam profile", ofmt="json")]
+ description = "Verifies the device TCAM profile."
+ categories: ClassVar[list[str]] = ["profiles"]
+ commands: ClassVar[list[AntaCommand | AntaTemplate]] = [AntaCommand(command="show hardware tcam profile", revision=1)]
+
+ class Input(AntaTest.Input):
+ """Input model for the VerifyTcamProfile test."""
- class Input(AntaTest.Input): # pylint: disable=missing-class-docstring
profile: str
- """Expected TCAM profile"""
+ """Expected TCAM profile."""
- @skip_on_platforms(["cEOSLab", "vEOS-lab"])
+ @skip_on_platforms(["cEOSLab", "vEOS-lab", "cEOSCloudLab"])
@AntaTest.anta_test
def test(self) -> None:
+ """Main test function for VerifyTcamProfile."""
command_output = self.instance_commands[0].json_output
if command_output["pmfProfiles"]["FixedSystem"]["status"] == command_output["pmfProfiles"]["FixedSystem"]["config"] == self.inputs.profile:
self.result.is_success()