Initial commit

This commit is contained in:
sven committed 2026-08-16 13:10:26 +02:00
commit 4ff9eac274
45 files changed
+2911

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
import pytest
from netbox_services.engine.allocators import FirstFreeIPAddressAllocator, SpecificAllocator
@pytest.mark.django_db
class TestFirstFreeIPAddressAllocator:
def test_allocate_creates_ip(self, db):
from ipam.models import IPAddress, Prefix
from netbox_services.engine.context import Context
Prefix.objects.create(prefix="10.99.0.0/24")
allocator = FirstFreeIPAddressAllocator({
"strategy": "first_free",
"prefix": {"type": "prefix", "filters": {}},
})
ip = allocator.allocate(Context(service=None))
assert ip is not None
assert "10.99.0." in str(ip.address)
def test_no_prefix_raises(self, db):
from netbox_services.engine.context import Context
allocator = FirstFreeIPAddressAllocator({
"strategy": "first_free",
"prefix": {"type": "prefix", "filters": {"description": "no-such-prefix"}},
})
with pytest.raises(ValueError):
allocator.allocate(Context(service=None))
@pytest.mark.django_db
class TestSpecificAllocator:
def test_specific_address(self, db):
from netbox_services.engine.context import Context
allocator = SpecificAllocator({"strategy": "specific", "address": "10.50.0.1/24"})
ip = allocator.allocate(Context(service=None))
assert str(ip.address) == "10.50.0.1/24"
def test_specific_requires_address_or_path(self, db):
from netbox_services.engine.context import Context
allocator = SpecificAllocator({"strategy": "specific"})
with pytest.raises(ValueError):
allocator.allocate(Context(service=None))