pyIPAM - Docker Plugin for IPAM written in Python
Jacek Kowalski
2026-03-11 2e8d847c4fbccbd27566ad4f1484b7809ac62cd7
test/IpamPoolTest.py
@@ -294,3 +294,35 @@
        pool.deallocate('fe80::2')
        self.assertEqual(pool.allocate('fe80::2'), 'fe80::2/125')
        self.assertEqual(pool.allocate(), 'fe80::1/125')
class TestPoolPointToPoint(unittest.TestCase):
    def test_pool_allocate_ptp_ipv4(self):
        pool = Pool(pool='127.0.0.0/30', options={'ptp': '1'})
        self.assertEqual(pool.allocate(), '127.0.0.0/32')
        self.assertEqual(pool.allocate(), '127.0.0.1/32')
        self.assertEqual(pool.allocate(), '127.0.0.2/32')
        self.assertEqual(pool.allocate(), '127.0.0.3/32')
    def test_pool_allocate_ptp_ipv6(self):
        pool = Pool(pool='fe80::/126', options={'ptp': '1'})
        self.assertEqual(pool.allocate(), 'fe80::/128')
        self.assertEqual(pool.allocate(), 'fe80::1/128')
        self.assertEqual(pool.allocate(), 'fe80::2/128')
        self.assertEqual(pool.allocate(), 'fe80::3/128')
class TestPoolWithoutValidation(unittest.TestCase):
    def test_pool_allocate_duplicates_ipv4(self):
        pool = Pool(pool='127.0.0.0/30', options={'validate': '0'})
        self.assertEqual(pool.allocate(), '127.0.0.1/30')
        self.assertEqual(pool.allocate(), '127.0.0.2/30')
        self.assertEqual(pool.allocate('127.0.0.1'), '127.0.0.1/30')
        self.assertEqual(pool.allocate('127.0.0.1'), '127.0.0.1/30')
    def test_pool_allocate_duplicates_ipv6(self):
        pool = Pool(pool='fe80::/126', options={'validate': '0'})
        self.assertEqual(pool.allocate(), 'fe80::1/126')
        self.assertEqual(pool.allocate(), 'fe80::2/126')
        self.assertEqual(pool.allocate(), 'fe80::3/126')
        self.assertEqual(pool.allocate('fe80::1'), 'fe80::1/126')
        self.assertEqual(pool.allocate('fe80::1'), 'fe80::1/126')