new file: netbox_dns_bridge/tests/__init__.py new file: netbox_dns_bridge/tests/_helpers.py new file: netbox_dns_bridge/tests/conftest.py new file: netbox_dns_bridge/tests/test_bootstrap.py new file: netbox_dns_bridge/tests/test_catalog_zone_manager.py new file: netbox_dns_bridge/tests/test_dns_server.py new file: netbox_dns_bridge/tests/test_management_commands.py new file: netbox_dns_bridge/tests/test_models.py new file: netbox_dns_bridge/tests/test_notify_handler.py new file: netbox_dns_bridge/tests/test_request_handler_integration.py new file: netbox_dns_bridge/tests/test_request_handler_unit.py new file: netbox_dns_bridge/tests/test_signals.py new file: netbox_dns_bridge/tests/test_smoke.py new file: netbox_dns_bridge/tests/test_utils.py new file: netbox_dns_bridge/tests/test_views.py modified: pyproject.toml Add some tests. #AI generated
86 lines
2.4 KiB
Python
86 lines
2.4 KiB
Python
"""Tests for the DNS server classes: DNSAddressMixin, TCPDNSServer, UDPDNSServer."""
|
|
import socket
|
|
|
|
import pytest
|
|
|
|
from netbox_dns_bridge.management.commands.dns_transfer_endpoint.dns_server import (
|
|
DNSAddressMixin,
|
|
TCPDNSServer,
|
|
UDPDNSServer,
|
|
)
|
|
from netbox_dns_bridge.management.commands.dns_transfer_endpoint.request_handler import (
|
|
TCPRequestHandler,
|
|
UDPRequestHandler,
|
|
)
|
|
|
|
|
|
class TestDNSAddressMixin:
|
|
def test_resolve_address_ipv4(self):
|
|
mixin = DNSAddressMixin()
|
|
sockaddr = mixin._resolve_address(
|
|
("127.0.0.1", 0), socket.SOCK_STREAM, socket.IPPROTO_TCP
|
|
)
|
|
assert sockaddr[0] == "127.0.0.1"
|
|
assert mixin.address_family == socket.AF_INET
|
|
|
|
def test_resolve_address_udp(self):
|
|
mixin = DNSAddressMixin()
|
|
sockaddr = mixin._resolve_address(
|
|
("127.0.0.1", 0), socket.SOCK_DGRAM, socket.IPPROTO_UDP
|
|
)
|
|
assert sockaddr[0] == "127.0.0.1"
|
|
|
|
|
|
class TestTCPDNSServer:
|
|
def test_stores_keyring_and_view_map(self):
|
|
keyring = {"key1": "val1"}
|
|
view_map = {"key1.": "view1"}
|
|
srv = TCPDNSServer(
|
|
("127.0.0.1", 0), TCPRequestHandler, keyring, view_map
|
|
)
|
|
try:
|
|
assert srv.keyring is keyring
|
|
assert srv.tsig_view_map is view_map
|
|
finally:
|
|
srv.server_close()
|
|
|
|
def test_allow_reuse_address(self):
|
|
assert TCPDNSServer.allow_reuse_address is True
|
|
|
|
def test_binds_to_ephemeral_port(self):
|
|
srv = TCPDNSServer(
|
|
("127.0.0.1", 0), TCPRequestHandler, {}, {}
|
|
)
|
|
try:
|
|
port = srv.server_address[1]
|
|
assert port > 0
|
|
finally:
|
|
srv.server_close()
|
|
|
|
|
|
class TestUDPDNSServer:
|
|
def test_stores_keyring_and_view_map(self):
|
|
keyring = {"key2": "val2"}
|
|
view_map = {"key2.": "view2"}
|
|
srv = UDPDNSServer(
|
|
("127.0.0.1", 0), UDPRequestHandler, keyring, view_map
|
|
)
|
|
try:
|
|
assert srv.keyring is keyring
|
|
assert srv.tsig_view_map is view_map
|
|
finally:
|
|
srv.server_close()
|
|
|
|
def test_allow_reuse_address(self):
|
|
assert UDPDNSServer.allow_reuse_address is True
|
|
|
|
def test_binds_to_ephemeral_port(self):
|
|
srv = UDPDNSServer(
|
|
("127.0.0.1", 0), UDPRequestHandler, {}, {}
|
|
)
|
|
try:
|
|
port = srv.server_address[1]
|
|
assert port > 0
|
|
finally:
|
|
srv.server_close()
|