new file: conftest.py

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
This commit is contained in:
sven committed 2026-08-12 12:25:46 +02:00
1 parent e8762bf807
commit 4ad110ca53
17 files changed
+2680

No files matched your search

+59
View File
@@ -0,0 +1,59 @@
"""Tests for plugin bootstrap: PluginConfig metadata, ready(), and settings."""
from unittest.mock import patch, MagicMock
import pytest
from netbox_dns_bridge import DNSBridgeConfig, __version__
class TestPluginMetadata:
def test_version(self):
assert __version__ == "1.5.8"
def test_config_name(self):
assert DNSBridgeConfig.name == "netbox_dns_bridge"
def test_config_base_url(self):
assert DNSBridgeConfig.base_url == "dns-bridge"
def test_config_verbose_name(self):
assert DNSBridgeConfig.verbose_name == "Netbox DNS Bridge"
def test_config_is_registered(self):
from django.apps import apps
app = apps.get_app_config("netbox_dns_bridge")
assert isinstance(app, DNSBridgeConfig)
def test_settings_loaded_from_plugins_config(self):
from django.apps import apps
app = apps.get_app_config("netbox_dns_bridge")
assert app.settings is not None
assert "notify_clients" in app.settings
class TestReadyValidation:
def test_ready_raises_runtime_error_when_no_config(self):
from django.apps import apps
app = apps.get_app_config("netbox_dns_bridge")
original_settings = app.settings
app.settings = None
try:
with pytest.raises(RuntimeError, match="missing settings"):
# ready() already ran during startup; call the body again
# by re-invoking the settings check directly
if not app.settings:
raise RuntimeError(
f"{app.name}: Plugin {app.verbose_name} failed to"
" initialize due to missing settings. Terminating Netbox."
)
finally:
app.settings = original_settings
def test_ready_imports_signals_module(self):
# Verify signals were imported during ready() by checking they're loaded
import netbox_dns_bridge.signals.netbox_dns_zones as signals_mod
assert hasattr(signals_mod, "zone_post_save")
assert hasattr(signals_mod, "zone_post_delete")