From 85e54b6f029d43618e56aa896e3de70be54b48ff Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Fri, 3 Aug 2018 13:27:34 +0300 Subject: [PATCH] add ip4 ipv6 tests add --- abonapp/tests.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/abonapp/tests.py b/abonapp/tests.py index 3435846..cd24984 100644 --- a/abonapp/tests.py +++ b/abonapp/tests.py @@ -443,6 +443,16 @@ class ClientLeasesTestCase(MyBaseTestCase, TestCase): netw.groups.add(self.group.pk) netw.save() self.network = netw + netw6 = NetworkModel.objects.create( + network='fde8:86a9:f132:1::/64', + kind='inet', + description='Descr', + ip_start='fde8:86a9:f132:1::1', + ip_end='fde8:86a9:f132:1::2f' + ) + netw6.groups.add(self.group.pk) + netw6.save() + self.network6 = netw6 def test_add_static_ipv4_lease(self): print('test_add_static_ipv4_lease') @@ -487,3 +497,69 @@ class ClientLeasesTestCase(MyBaseTestCase, TestCase): 'possible_networks': netw.pk }) self.assertFormError(r, form='form', field='ip_addr', errors=_('Ip that you typed is not in subnet that you have selected')) + + # successfully apply + r = self.client.post(url, data={ + 'ip_addr': '192.168.0.3', + 'is_dynamic': False, + 'possible_networks': self.network.pk + }) + self.assertRedirects(r, resolve_url('abonapp:abon_home', self.group.pk, self.abon.username)) + updated_abon = Abon.objects.get(username=self.abon.username) + ip_addr = updated_abon.ip_addresses.all().first() + self.assertEqual('192.168.0.3', ip_addr.ip) + + def test_add_static_ipv6_lease(self): + print('test_add_static_ipv6_lease') + url = resolve_url('abonapp:lease_add', gid=self.group.pk, uname=self.abon.username) + self._client_get_check_login(url) + + # Checks if lease not in allowed range + r = self.client.post(url, data={ + 'ip_addr': 'fde8:86a9:f132:1::3f', + 'is_dynamic': False, + 'possible_networks': self.network6.pk + }) + self.assertFormError(r, form='form', field='ip_addr', errors=_('Ip that you have passed is greater than allowed network range')) + + # Not valid ipv4 address + r = self.client.post(url, data={ + 'ip_addr': 'fde8:86a9:f132:1::dsf', + 'is_dynamic': False, + 'possible_networks': self.network6.pk + }) + self.assertFormError(r, form='form', field='ip_addr', errors=_('This is not a valid IPv6 address.')) + + # different subnet + r = self.client.post(url, data={ + 'ip_addr': 'fde8:86a9:f232:1::7', + 'is_dynamic': False, + 'possible_networks': self.network6.pk + }) + self.assertFormError(r, form='form', field='ip_addr', errors=_('Ip that you typed is not in subnet that you have selected')) + + # another subnet + netw = NetworkModel.objects.create( + network='fde8:86a9:f132:1::1', + kind='inet', + description='Descr', + ip_start='fde8:86a9:f132:1::2', + ip_end='fde8:86a9:f132:1::ff12' + ) + r = self.client.post(url, data={ + 'ip_addr': 'fde8:86a9:f1c6:1::1', + 'is_dynamic': False, + 'possible_networks': netw.pk + }) + self.assertFormError(r, form='form', field='ip_addr', errors=_('Ip that you typed is not in subnet that you have selected')) + + # successfully apply + r = self.client.post(url, data={ + 'ip_addr': 'fde8:86a9:f132:1::7', + 'is_dynamic': False, + 'possible_networks': self.network6.pk + }) + self.assertRedirects(r, resolve_url('abonapp:abon_home', self.group.pk, self.abon.username)) + updated_abon = Abon.objects.get(username=self.abon.username) + ip_addr = updated_abon.ip_addresses.all().first() + self.assertEqual('fde8:86a9:f132:1::7', ip_addr.ip)