From 2c521f1356378904e3d3a744960de68e8c5b62dc Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Mon, 22 Sep 2025 20:49:15 +0200 Subject: smoketest: T7858: make failfast main argument dynamic When smoketest debugging is enabled (by creating the file /tmp/vyos.smoketest.debug), all available smoketests will fail fast instead of running to completion. This helps reduce test time when something is broken or undergoing refactoring, as it avoids waiting for the full test suite to finish. --- smoketest/scripts/cli/test_interfaces_loopback.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'smoketest/scripts/cli/test_interfaces_loopback.py') diff --git a/smoketest/scripts/cli/test_interfaces_loopback.py b/smoketest/scripts/cli/test_interfaces_loopback.py index 290cda64b..df498334e 100755 --- a/smoketest/scripts/cli/test_interfaces_loopback.py +++ b/smoketest/scripts/cli/test_interfaces_loopback.py @@ -19,6 +19,7 @@ import unittest from base_interfaces_test import BasicInterfaceTest from base_interfaces_test import MSG_TESTCASE_UNSUPPORTED from netifaces import interfaces +from base_vyostest_shim import VyOSUnitTestSHIM from vyos.utils.network import is_intf_addr_assigned @@ -57,4 +58,4 @@ class LoopbackInterfaceTest(BasicInterfaceTest.TestCase): self.skipTest(MSG_TESTCASE_UNSUPPORTED) if __name__ == '__main__': - unittest.main(verbosity=2) + unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on()) -- cgit v1.2.3 From fa868a6967b55c7d06220afd5a0f3e7caf97443a Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 30 Sep 2025 17:17:35 +0200 Subject: smoketest: T7858: use pylint for our testcases --- Makefile | 2 +- smoketest/scripts/cli/base_accel_ppp_test.py | 5 +++++ smoketest/scripts/cli/base_interfaces_test.py | 6 +++--- smoketest/scripts/cli/test_interfaces_ethernet.py | 6 +++--- smoketest/scripts/cli/test_interfaces_loopback.py | 2 +- smoketest/scripts/cli/test_interfaces_openvpn.py | 2 +- smoketest/scripts/cli/test_interfaces_virtual-ethernet.py | 2 +- smoketest/scripts/cli/test_nat.py | 3 +++ smoketest/scripts/cli/test_protocols_bgp.py | 12 ++++++------ 9 files changed, 24 insertions(+), 16 deletions(-) (limited to 'smoketest/scripts/cli/test_interfaces_loopback.py') diff --git a/Makefile b/Makefile index c4f7328ba..0bc848192 100644 --- a/Makefile +++ b/Makefile @@ -113,7 +113,7 @@ check_migration_scripts_executable: pylint: interface_definitions @echo Running "pylint ..." @set -e; \ - PYTHONPATH=python/ pylint --errors-only $(shell git ls-files python/vyos/ifconfig/*.py python/vyos/utils/*.py src/conf_mode/*.py src/op_mode/*.py src/migration-scripts src/services/vyos*); \ + PYTHONPATH="python/:smoketest/scripts/cli/" pylint --errors-only $(shell git ls-files python/vyos/ifconfig/*.py python/vyos/utils/*.py src/conf_mode/*.py src/op_mode/*.py src/migration-scripts src/services/vyos* smoketest/scripts); \ PYTHONPATH=python/ pylint --disable=all --enable=W0611 $(shell git ls-files *.py src/migration-scripts src/services) .PHONY: j2lint diff --git a/smoketest/scripts/cli/base_accel_ppp_test.py b/smoketest/scripts/cli/base_accel_ppp_test.py index ddaed80ad..d7dc43757 100644 --- a/smoketest/scripts/cli/base_accel_ppp_test.py +++ b/smoketest/scripts/cli/base_accel_ppp_test.py @@ -26,6 +26,11 @@ from vyos.utils.process import cmd class BasicAccelPPPTest: class TestCase(VyOSUnitTestSHIM.TestCase): + _base_path = None + _config_file = None + _chap_secrets = None + _protocol_section = None + @classmethod def setUpClass(cls): cls._process_name = "accel-pppd" diff --git a/smoketest/scripts/cli/base_interfaces_test.py b/smoketest/scripts/cli/base_interfaces_test.py index cde4f9fb9..20f108b03 100644 --- a/smoketest/scripts/cli/base_interfaces_test.py +++ b/smoketest/scripts/cli/base_interfaces_test.py @@ -15,9 +15,9 @@ import re from json import loads -from netifaces import AF_INET -from netifaces import AF_INET6 -from netifaces import ifaddresses +from netifaces import ifaddresses # pylint: disable = no-name-in-module +from socket import AF_INET +from socket import AF_INET6 from systemd import journal from base_vyostest_shim import VyOSUnitTestSHIM diff --git a/smoketest/scripts/cli/test_interfaces_ethernet.py b/smoketest/scripts/cli/test_interfaces_ethernet.py index 82c6b5e80..d42ed29dc 100755 --- a/smoketest/scripts/cli/test_interfaces_ethernet.py +++ b/smoketest/scripts/cli/test_interfaces_ethernet.py @@ -20,9 +20,9 @@ import unittest from glob import glob from json import loads -from netifaces import AF_INET -from netifaces import AF_INET6 -from netifaces import ifaddresses +from socket import AF_INET +from socket import AF_INET6 +from netifaces import ifaddresses # pylint: disable = no-name-in-module from base_interfaces_test import BasicInterfaceTest from base_vyostest_shim import VyOSUnitTestSHIM diff --git a/smoketest/scripts/cli/test_interfaces_loopback.py b/smoketest/scripts/cli/test_interfaces_loopback.py index df498334e..6cc0d4dbe 100755 --- a/smoketest/scripts/cli/test_interfaces_loopback.py +++ b/smoketest/scripts/cli/test_interfaces_loopback.py @@ -15,10 +15,10 @@ # along with this program. If not, see . import unittest +from netifaces import interfaces # pylint: disable = no-name-in-module from base_interfaces_test import BasicInterfaceTest from base_interfaces_test import MSG_TESTCASE_UNSUPPORTED -from netifaces import interfaces from base_vyostest_shim import VyOSUnitTestSHIM from vyos.utils.network import is_intf_addr_assigned diff --git a/smoketest/scripts/cli/test_interfaces_openvpn.py b/smoketest/scripts/cli/test_interfaces_openvpn.py index aa2d7c5b1..fd898cb84 100755 --- a/smoketest/scripts/cli/test_interfaces_openvpn.py +++ b/smoketest/scripts/cli/test_interfaces_openvpn.py @@ -19,7 +19,7 @@ import unittest from glob import glob from ipaddress import IPv4Network -from netifaces import interfaces +from netifaces import interfaces # pylint: disable = no-name-in-module from base_vyostest_shim import VyOSUnitTestSHIM diff --git a/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py b/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py index 323362182..6f2ddd302 100755 --- a/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py +++ b/smoketest/scripts/cli/test_interfaces_virtual-ethernet.py @@ -15,8 +15,8 @@ # along with this program. If not, see . import unittest +from netifaces import interfaces # pylint: disable = no-name-in-module -from netifaces import interfaces from base_interfaces_test import BasicInterfaceTest from base_vyostest_shim import VyOSUnitTestSHIM diff --git a/smoketest/scripts/cli/test_nat.py b/smoketest/scripts/cli/test_nat.py index 550d37121..ed57d4a62 100755 --- a/smoketest/scripts/cli/test_nat.py +++ b/smoketest/scripts/cli/test_nat.py @@ -18,7 +18,10 @@ import os import unittest from base_vyostest_shim import VyOSUnitTestSHIM +from time import sleep + from vyos.configsession import ConfigSessionError +from vyos.utils.process import run base_path = ['nat'] src_path = base_path + ['source'] diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py index d1ae5dabf..d2059f388 100755 --- a/smoketest/scripts/cli/test_protocols_bgp.py +++ b/smoketest/scripts/cli/test_protocols_bgp.py @@ -714,10 +714,10 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase): for table, table_config in proto_config.items(): self.cli_set(proto_path + [table]) if 'metric' in table_config: - self.cli_set(proto_path + [table, 'metric'], value=table_config['metric']) + self.cli_set(proto_path + [table, 'metric'], value=table_config.get('metric')) if 'route_map' in table_config: - self.cli_set(['policy', 'route-map', table_config['route_map'], 'rule', '10', 'action'], value='permit') - self.cli_set(proto_path + [table, 'route-map'], value=table_config['route_map']) + self.cli_set(['policy', 'route-map', table_config.get('route_map'), 'rule', '10', 'action'], value='permit') + self.cli_set(proto_path + [table, 'route-map'], value=table_config.get('route_map')) else: self.cli_set(proto_path) if 'metric' in proto_config: @@ -846,10 +846,10 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase): for table, table_config in proto_config.items(): self.cli_set(proto_path + [table]) if 'metric' in table_config: - self.cli_set(proto_path + [table, 'metric'], value=table_config['metric']) + self.cli_set(proto_path + [table, 'metric'], value=table_config.get('metric')) if 'route_map' in table_config: - self.cli_set(['policy', 'route-map', table_config['route_map'], 'rule', '10', 'action'], value='permit') - self.cli_set(proto_path + [table, 'route-map'], value=table_config['route_map']) + self.cli_set(['policy', 'route-map', table_config.get('route_map'), 'rule', '10', 'action'], value='permit') + self.cli_set(proto_path + [table, 'route-map'], value=table_config.get('route_map')) else: self.cli_set(proto_path) if 'metric' in proto_config: -- cgit v1.2.3