diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-05-11 17:58:16 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-05-11 20:14:58 +0200 |
| commit | ba7da49727661a1b502844eca1445016353ffb92 (patch) | |
| tree | f0107a1a59fb41b158466471b96bd4915e098c69 /smoketest/scripts/cli | |
| parent | 7cf4d14610a021d13e1a54df05cf1bffc03f714b (diff) | |
| download | vyos-1x-ba7da49727661a1b502844eca1445016353ffb92.tar.gz vyos-1x-ba7da49727661a1b502844eca1445016353ffb92.zip | |
smoketests: T8845: missing base-class call to commit() in tearDownClass()
The smoketest framework heavily relies on deriving common code paths. The
tearDownClass() is called when a testcase finishes and testcases like protocols
BGP delete CLI nodes before calling the base class.
The base-class never calls commit() thus the deletions are discarded instead
of committed.
test_protocols_bgp.py
@classmethod
def tearDownClass(cls):
cls.cli_delete(cls, ['policy', 'route-map'])
cls.cli_delete(cls, ['policy', 'prefix-list'])
cls.cli_delete(cls, ['policy', 'prefix-list6'])
super(TestProtocolsBGP, cls).tearDownClass()
base class base_vyostest_shim.py
@classmethod
def tearDownClass(cls):
# discard any pending changes which might caused a messed up config
cls._session.discard()
Diffstat (limited to 'smoketest/scripts/cli')
| -rw-r--r-- | smoketest/scripts/cli/base_vyostest_shim.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/smoketest/scripts/cli/base_vyostest_shim.py b/smoketest/scripts/cli/base_vyostest_shim.py index 502be2813..590670a06 100644 --- a/smoketest/scripts/cli/base_vyostest_shim.py +++ b/smoketest/scripts/cli/base_vyostest_shim.py @@ -65,16 +65,19 @@ class VyOSUnitTestSHIM: @classmethod def tearDownClass(cls): - # discard any pending changes which might caused a messed up config - cls._session.discard() - # ... and restore the initial state - cls._session.migrate_and_load_config(save_config) - try: + # commit pending changes done by derived tearDownClass() + # implementations like CLI cleanup cls._session.commit() except (ConfigError, ConfigSessionError): + # discard any pending changes which might have failed, causing a + # messed up config cls._session.discard() cls.fail(cls) + finally: + # restore previous configuration before the test + cls._session.migrate_and_load_config(save_config) + cls._session.commit() def setUp(self): pass |
