diff options
-rwxr-xr-x | scripts/cli/test_interfaces_tunnel.py | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/scripts/cli/test_interfaces_tunnel.py b/scripts/cli/test_interfaces_tunnel.py index d0ccede54..7611ffe26 100755 --- a/scripts/cli/test_interfaces_tunnel.py +++ b/scripts/cli/test_interfaces_tunnel.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +import os import unittest -from base_interfaces_test import BasicInterfaceTest -from vyos.ifconfig import Interface +from vyos.configsession import ConfigSession +from base_interfaces_test import BasicInterfaceTest class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): # encoding, tunnel endpoint (v4/v6), address (v4/v6) @@ -36,45 +37,73 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): ('sit', 4, 6), ] + local = { + 4: '10.100.{}.1/24', + 6: '2001:db8:{}::1/64', + } + remote = { 4: '192.0.{}.1', 6: '2002::{}:1', } - addrs = { + address = { 4: '10.100.{}.1/24', 6: '2001:db8:{}::1/64', } def setUp(self): - super().setUp() + local = {} + remote = {} + address = {} + self._intf_dummy = ['interfaces', 'dummy'] self._base_path = ['interfaces', 'tunnel'] - self._interfaces = ['tun%d' % (n+1) for n in range(len(self._valid))] + self._interfaces = ['tun{}'.format(n) for n in range(len(self._valid))] + self._test_mtu = True + super().setUp() - # creating two dummy interface as to use as local-ip for the tunnels - base_path = ['interfaces', 'dummy'] - self.session.set(base_path + ['dum444', 'address', '169.254.0.1/24']) - self.session.set(base_path + ['dum666', 'address', '2002::1/16']) - self.session.commit() + for number in range(len(self._valid)): + dum4 = 'dum4{}'.format(number) + dum6 = 'dum6{}'.format(number) - local = { - 4: Interface('dum444').get_addr()[0].split('/')[0], - 6: Interface('dum666').get_addr()[0].split('/')[0], - } + ipv4 = self.local[4].format(number) + ipv6 = self.local[6].format(number) - number = 1 - for encap, p2p, addr in self._valid: + local.setdefault(4, {})[number] = ipv4 + local.setdefault(6, {})[number] = ipv6 + + ipv4 = self.remote[4].format(number) + ipv6 = self.remote[6].format(number) + + remote.setdefault(4, {})[number] = ipv4 + remote.setdefault(6, {})[number] = ipv6 + + ipv4 = self.address[4].format(number) + ipv6 = self.address[6].format(number) + + address.setdefault(4, {})[number] = ipv4 + address.setdefault(6, {})[number] = ipv6 + + self.session.set(self._intf_dummy + [dum4, 'address', ipv4]) + self.session.set(self._intf_dummy + [dum6, 'address', ipv6]) + self.session.commit() + + for number, (encap, p2p, addr) in enumerate(self._valid): intf = 'tun%d' % number tunnel = {} tunnel['encapsulation'] = encap - tunnel['local-ip'] = local[p2p].format(number) - tunnel['remote-ip'] = self.remote[p2p].format(number) - tunnel['address'] = self.addrs[addr].format(number) + tunnel['local-ip'] = local[p2p][number].split('/')[0] + tunnel['remote-ip'] = remote[p2p][number].split('/')[0] + tunnel['address'] = address[addr][number] for name in tunnel: self.session.set(self._base_path + [intf, name, tunnel[name]]) - number += 1 + + def tearDown(self): + self.session.delete(self._intf_dummy) + super().tearDown() + if __name__ == '__main__': unittest.main() |