diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 08:36:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 08:36:50 +0000 |
commit | 7763cc454d686d51bf2e0ccc1f2ccf7d62a0d625 (patch) | |
tree | f36d2006dd01bd01a069956741d831d9d5633377 /tests/units/anta_tests/test_stun.py | |
parent | Adding debian version 0.13.0-1. (diff) | |
download | anta-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 'tests/units/anta_tests/test_stun.py')
-rw-r--r-- | tests/units/anta_tests/test_stun.py | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/tests/units/anta_tests/test_stun.py b/tests/units/anta_tests/test_stun.py new file mode 100644 index 0000000..2c87365 --- /dev/null +++ b/tests/units/anta_tests/test_stun.py @@ -0,0 +1,176 @@ +# 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 inputs for anta.tests.stun.py.""" + +from __future__ import annotations + +from typing import Any + +from anta.tests.stun import VerifyStunClient +from tests.lib.anta import test # noqa: F401; pylint: disable=W0611 + +DATA: list[dict[str, Any]] = [ + { + "name": "success", + "test": VerifyStunClient, + "eos_data": [ + { + "bindings": { + "000000010a64ff0100000000": { + "sourceAddress": {"ip": "100.64.3.2", "port": 4500}, + "publicAddress": {"ip": "192.64.3.2", "port": 6006}, + } + } + }, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.3.2", "port": 4500}, + "publicAddress": {"ip": "192.18.3.2", "port": 6006}, + } + } + }, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.4.2", "port": 4500}, + "publicAddress": {"ip": "192.18.4.2", "port": 6006}, + } + } + }, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.6.2", "port": 4500}, + "publicAddress": {"ip": "192.18.6.2", "port": 6006}, + } + } + }, + ], + "inputs": { + "stun_clients": [ + {"source_address": "100.64.3.2", "public_address": "192.64.3.2", "source_port": 4500, "public_port": 6006}, + {"source_address": "172.18.3.2"}, + {"source_address": "172.18.4.2", "source_port": 4500, "public_address": "192.18.4.2"}, + {"source_address": "172.18.6.2", "source_port": 4500, "public_port": 6006}, + ] + }, + "expected": {"result": "success"}, + }, + { + "name": "failure-incorrect-public-ip", + "test": VerifyStunClient, + "eos_data": [ + { + "bindings": { + "000000010a64ff0100000000": { + "sourceAddress": {"ip": "100.64.3.2", "port": 4500}, + "publicAddress": {"ip": "192.64.3.2", "port": 6006}, + } + } + }, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.3.2", "port": 4500}, + "publicAddress": {"ip": "192.18.3.2", "port": 6006}, + } + } + }, + ], + "inputs": { + "stun_clients": [ + {"source_address": "100.64.3.2", "public_address": "192.164.3.2", "source_port": 4500, "public_port": 6006}, + {"source_address": "172.18.3.2", "public_address": "192.118.3.2", "source_port": 4500, "public_port": 6006}, + ] + }, + "expected": { + "result": "failure", + "messages": [ + "For STUN source `100.64.3.2:4500`:\nExpected `192.164.3.2` as the public ip, but found `192.64.3.2` instead.", + "For STUN source `172.18.3.2:4500`:\nExpected `192.118.3.2` as the public ip, but found `192.18.3.2` instead.", + ], + }, + }, + { + "name": "failure-no-client", + "test": VerifyStunClient, + "eos_data": [ + {"bindings": {}}, + {"bindings": {}}, + ], + "inputs": { + "stun_clients": [ + {"source_address": "100.64.3.2", "public_address": "192.164.3.2", "source_port": 4500, "public_port": 6006}, + {"source_address": "172.18.3.2", "public_address": "192.118.3.2", "source_port": 4500, "public_port": 6006}, + ] + }, + "expected": { + "result": "failure", + "messages": ["STUN client transaction for source `100.64.3.2:4500` is not found.", "STUN client transaction for source `172.18.3.2:4500` is not found."], + }, + }, + { + "name": "failure-incorrect-public-port", + "test": VerifyStunClient, + "eos_data": [ + {"bindings": {}}, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.3.2", "port": 4500}, + "publicAddress": {"ip": "192.18.3.2", "port": 4800}, + } + } + }, + ], + "inputs": { + "stun_clients": [ + {"source_address": "100.64.3.2", "public_address": "192.164.3.2", "source_port": 4500, "public_port": 6006}, + {"source_address": "172.18.3.2", "public_address": "192.118.3.2", "source_port": 4500, "public_port": 6006}, + ] + }, + "expected": { + "result": "failure", + "messages": [ + "STUN client transaction for source `100.64.3.2:4500` is not found.", + "For STUN source `172.18.3.2:4500`:\n" + "Expected `192.118.3.2` as the public ip, but found `192.18.3.2` instead.\n" + "Expected `6006` as the public port, but found `4800` instead.", + ], + }, + }, + { + "name": "failure-all-type", + "test": VerifyStunClient, + "eos_data": [ + {"bindings": {}}, + { + "bindings": { + "000000040a64ff0100000000": { + "sourceAddress": {"ip": "172.18.3.2", "port": 4500}, + "publicAddress": {"ip": "192.18.3.2", "port": 4800}, + } + } + }, + ], + "inputs": { + "stun_clients": [ + {"source_address": "100.64.3.2", "public_address": "192.164.3.2", "source_port": 4500, "public_port": 6006}, + {"source_address": "172.18.4.2", "public_address": "192.118.3.2", "source_port": 4800, "public_port": 6006}, + ] + }, + "expected": { + "result": "failure", + "messages": [ + "STUN client transaction for source `100.64.3.2:4500` is not found.", + "For STUN source `172.18.4.2:4800`:\n" + "Expected `172.18.4.2` as the source ip, but found `172.18.3.2` instead.\n" + "Expected `4800` as the source port, but found `4500` instead.\n" + "Expected `192.118.3.2` as the public ip, but found `192.18.3.2` instead.\n" + "Expected `6006` as the public port, but found `4800` instead.", + ], + }, + }, +] |