From bb76575715682594d4d6d73d8b9e87692bdc6841 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 1 Nov 2020 10:46:46 +0100 Subject: openvpn: T2994: remove workarounds for individual ipv4 and ipv6 keys Remove workaround which split (local|remote)_address and also subnet keys into individual keys for the assigned IP address family (4/6). During template rendering check IP version by introducing new ipv4 and ipv6 Jinja2 filters {% if foo | ipv4 %} or {% if bar | ipv6 %} options. --- src/tests/test_jinja_filters.py | 56 +++++++++++++++++++++++++++++++++++++++++ src/tests/test_template.py | 31 ----------------------- 2 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 src/tests/test_jinja_filters.py delete mode 100644 src/tests/test_template.py (limited to 'src/tests') diff --git a/src/tests/test_jinja_filters.py b/src/tests/test_jinja_filters.py new file mode 100644 index 000000000..57ff11070 --- /dev/null +++ b/src/tests/test_jinja_filters.py @@ -0,0 +1,56 @@ +#!/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 . + +from unittest import TestCase + +from vyos.template import vyos_address_from_cidr +from vyos.template import vyos_netmask_from_cidr +from vyos.template import vyos_ipv4 +from vyos.template import vyos_ipv6 + +class TestTeamplteHelpers(TestCase): + def setUp(self): + pass + + def test_helpers_from_cidr(self): + network = '192.0.2.0/26' + self.assertEqual(vyos_address_from_cidr(network), '192.0.2.0') + self.assertEqual(vyos_netmask_from_cidr(network), '255.255.255.192') + + def test_helpers_ipv4(self): + self.assertTrue(vyos_ipv4('192.0.2.1')) + self.assertTrue(vyos_ipv4('192.0.2.0/24')) + self.assertTrue(vyos_ipv4('192.0.2.1/32')) + self.assertTrue(vyos_ipv4('10.255.1.2')) + self.assertTrue(vyos_ipv4('10.255.1.0/24')) + self.assertTrue(vyos_ipv4('10.255.1.2/32')) + self.assertFalse(vyos_ipv4('2001:db8::')) + self.assertFalse(vyos_ipv4('2001:db8::1')) + self.assertFalse(vyos_ipv4('2001:db8::/64')) + + def test_helpers_ipv6(self): + self.assertFalse(vyos_ipv6('192.0.2.1')) + self.assertFalse(vyos_ipv6('192.0.2.0/24')) + self.assertFalse(vyos_ipv6('192.0.2.1/32')) + self.assertFalse(vyos_ipv6('10.255.1.2')) + self.assertFalse(vyos_ipv6('10.255.1.0/24')) + self.assertFalse(vyos_ipv6('10.255.1.2/32')) + self.assertTrue(vyos_ipv6('2001:db8::')) + self.assertTrue(vyos_ipv6('2001:db8::1')) + self.assertTrue(vyos_ipv6('2001:db8::1/64')) + self.assertTrue(vyos_ipv6('2001:db8::/32')) + self.assertTrue(vyos_ipv6('2001:db8::/64')) + diff --git a/src/tests/test_template.py b/src/tests/test_template.py deleted file mode 100644 index 0b9f2c3b8..000000000 --- a/src/tests/test_template.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/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 . - -from unittest import TestCase - -from vyos.template import vyos_address_from_cidr -from vyos.template import vyos_netmask_from_cidr - - -class TestTeamplteHelpers(TestCase): - def setUp(self): - pass - - def test_helpers_from_cidr(self): - network = '192.0.2.0/26' - self.assertEqual(vyos_address_from_cidr(network), '192.0.2.0') - self.assertEqual(vyos_netmask_from_cidr(network), '255.255.255.192') - -- cgit v1.2.3