diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-02-17 20:27:36 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-02-17 20:27:36 +0100 |
commit | 8627392150bb9bc9e0f9f494ff2b0eb88f224e30 (patch) | |
tree | c4bc909db24559995e6120d8cc85554dba4b89e6 /scripts/cli/test_interfaces_bonding.py | |
parent | b612fb0a8e6afa94b2fb239335c8f41724689172 (diff) | |
download | vyos-1x-8627392150bb9bc9e0f9f494ff2b0eb88f224e30.tar.gz vyos-1x-8627392150bb9bc9e0f9f494ff2b0eb88f224e30.zip |
interfaces: split interface tests into individual files
Diffstat (limited to 'scripts/cli/test_interfaces_bonding.py')
-rwxr-xr-x | scripts/cli/test_interfaces_bonding.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/cli/test_interfaces_bonding.py b/scripts/cli/test_interfaces_bonding.py new file mode 100755 index 000000000..7e6523778 --- /dev/null +++ b/scripts/cli/test_interfaces_bonding.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2020 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from base_interfaces_test import * + +class BondInterfaceTest(BasicInterfaceTest.BaseTest): + def setUp(self): + super().setUp() + self._base_path = ['interfaces', 'bonding'] + self._interfaces = ['bond0'] + + def test_add_remove_member(self): + members = [] + # we need to filter out VLAN interfaces identified by a dot (.) + # in their name - just in case! + for tmp in list_interfaces_of_type("ethernet"): + if not '.' in tmp: + members.append(tmp) + + for intf in self._interfaces: + for member in members: + # We can not enslave an interface when there is an address + # assigned - take care here - or find them dynamically if a user + # runs vyos-smoketest on his production device? + self.session.set(self._base_path + [intf, 'member', 'interface', member]) + + self.session.commit() + + # check validate() - we can only add existing interfaces + self.session.set(self._base_path + [intf, 'member', 'interface', 'eth99']) + with self.assertRaises(ConfigSessionError): + self.session.commit() + + # check if member deletion works as expected + self.session.delete(self._base_path + [intf, 'member']) + self.session.commit() + +if __name__ == '__main__': + unittest.main() |