|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | + |
| 3 | +import unittest |
| 4 | +import iptools |
| 5 | + |
| 6 | + |
| 7 | +class IpRangeListTests(unittest.TestCase): |
| 8 | + |
| 9 | + def testMixedRange(self): |
| 10 | + INTERNAL_IPS = iptools.IpRangeList( |
| 11 | + '127.0.0.1', # single ip |
| 12 | + '192.168/16', # CIDR network block |
| 13 | + ('10.0.0.1', '10.0.0.19'), # arbitrary inclusive range |
| 14 | + '::1', # single IPv6 address |
| 15 | + 'fe80::/10', # IPv6 CIDR block |
| 16 | + '::ffff:0:0/96', # IPv4-mapped IPv6 |
| 17 | + ) |
| 18 | + |
| 19 | + self.assertTrue('127.0.0.1' in INTERNAL_IPS) |
| 20 | + |
| 21 | + self.assertTrue('192.168.0.1' in INTERNAL_IPS) |
| 22 | + self.assertTrue('192.168.255.254' in INTERNAL_IPS) |
| 23 | + |
| 24 | + self.assertTrue('10.0.0.1' in INTERNAL_IPS) |
| 25 | + self.assertTrue('10.0.0.19' in INTERNAL_IPS) |
| 26 | + |
| 27 | + self.assertTrue('::1' in INTERNAL_IPS) |
| 28 | + |
| 29 | + self.assertTrue('fe80::1' in INTERNAL_IPS) |
| 30 | + self.assertTrue('fe80::ffff' in INTERNAL_IPS) |
| 31 | + self.assertTrue( |
| 32 | + 'fe80:ffff:ffff:ffff:ffff:ffff:ffff:ffff' in INTERNAL_IPS) |
| 33 | + |
| 34 | + self.assertTrue('::ffff:172.16.11.12' in INTERNAL_IPS) |
| 35 | + |
| 36 | + self.assertFalse('209.19.170.129' in INTERNAL_IPS) |
| 37 | + # end testMixedRange |
| 38 | +#end class IpRangeListTests |
| 39 | + |
| 40 | + |
| 41 | +class IpRangeTests(unittest.TestCase): |
| 42 | + |
| 43 | + def testIPv6Range(self): |
| 44 | + fixture = iptools.IpRange('::ffff:0:0/96') |
| 45 | + self.assertTrue('::ffff:172.16.11.12' in fixture) |
| 46 | + self.assertFalse('209.19.170.129' in fixture) |
| 47 | + #end testIPv6Range |
| 48 | +#end class IpRangeTests |
| 49 | + |
| 50 | +# vim:se sw=4 ts=4 sts=4 et: |
0 commit comments