modified: CHANGELOG.md
new file: netbox_dns_bridge/jobs/__init__.py renamed: netbox_dns_bridge/signals/notify_handler.py -> netbox_dns_bridge/jobs/notify.py modified: netbox_dns_bridge/management/commands/dns_transfer_endpoint/catalog_zone_manager.py modified: netbox_dns_bridge/signals/netbox_dns_zones.py Restructuring modified: netbox_dns_bridge/tests/conftest.py renamed: netbox_dns_bridge/tests/test_notify_handler.py -> netbox_dns_bridge/tests/test_notify.py modified: netbox_dns_bridge/tests/test_signals.py AI updated tests, not manually verified.
This commit is contained in:
1 parent
9f5e40ae48
commit
3c3a1834bc
8 files changed
+295
-204
No files matched your search
@@ -50,41 +50,55 @@ class TestZonePostSaveCreate:
|
||||
obj = CatalogZone.objects.get(view=zone.view)
|
||||
assert obj.soa_serial == catz_serial
|
||||
|
||||
def test_schedule_client_notify_called_when_enabled(self, make_zone, patch_settings):
|
||||
def test_schedule_client_notify_always_called(self, make_zone, patch_settings):
|
||||
patch_settings({"notify_clients": True})
|
||||
with patch(
|
||||
"netbox_dns_bridge.signals.netbox_dns_zones.notify_handler.schedule_client_notify"
|
||||
"netbox_dns_bridge.jobs.notify.schedule_client_notify"
|
||||
) as mock_notify:
|
||||
with patch(
|
||||
"netbox_dns_bridge.signals.netbox_dns_zones.notify_handler.schedule_ns_notify"
|
||||
):
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
make_zone(name="notify.test")
|
||||
mock_notify.assert_called_once()
|
||||
with patch("netbox_dns_bridge.jobs.notify.schedule_ns_notify"):
|
||||
with patch(
|
||||
"netbox_dns_bridge.management.commands.dns_transfer_endpoint."
|
||||
"catalog_zone_manager.notify.schedule_catalog_zone_notify"
|
||||
):
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
make_zone(name="notify.test")
|
||||
mock_notify.assert_called_once()
|
||||
|
||||
def test_schedule_ns_notify_called_when_serial_changed(self, make_zone, patch_settings):
|
||||
def test_schedule_ns_notify_called_when_serial_changed(
|
||||
self, make_zone, patch_settings
|
||||
):
|
||||
patch_settings({
|
||||
"notify_clients": False,
|
||||
"notify_ns_all_zones": True,
|
||||
})
|
||||
with patch(
|
||||
"netbox_dns_bridge.signals.netbox_dns_zones.notify_handler.schedule_ns_notify"
|
||||
"netbox_dns_bridge.jobs.notify.schedule_ns_notify"
|
||||
) as mock_ns_notify:
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
make_zone(name="nsnotify.test")
|
||||
mock_ns_notify.assert_called_once()
|
||||
with patch("netbox_dns_bridge.jobs.notify.schedule_client_notify"):
|
||||
with patch(
|
||||
"netbox_dns_bridge.management.commands.dns_transfer_endpoint."
|
||||
"catalog_zone_manager.notify.schedule_catalog_zone_notify"
|
||||
):
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
make_zone(name="nsnotify.test")
|
||||
mock_ns_notify.assert_called_once()
|
||||
|
||||
def test_schedule_ns_notify_not_called_when_disabled(self, make_zone, patch_settings):
|
||||
patch_settings({
|
||||
"notify_clients": False,
|
||||
"notify_ns_all_zones": False,
|
||||
})
|
||||
def test_schedule_ns_notify_not_called_when_serial_unchanged(
|
||||
self, make_zone, patch_settings
|
||||
):
|
||||
patch_settings({"notify_ns_all_zones": True})
|
||||
with patch(
|
||||
"netbox_dns_bridge.signals.netbox_dns_zones.notify_handler.schedule_ns_notify"
|
||||
"netbox_dns_bridge.jobs.notify.schedule_ns_notify"
|
||||
) as mock_ns_notify:
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
make_zone(name="nonsnotify.test")
|
||||
mock_ns_notify.assert_not_called()
|
||||
with patch("netbox_dns_bridge.jobs.notify.schedule_client_notify"):
|
||||
with patch(
|
||||
"netbox_dns_bridge.management.commands.dns_transfer_endpoint."
|
||||
"catalog_zone_manager.notify.schedule_catalog_zone_notify"
|
||||
):
|
||||
zone = make_zone(name="noserialchange.test")
|
||||
with captureOnCommitCallbacks(execute=True):
|
||||
zone.save()
|
||||
mock_ns_notify.assert_not_called()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -224,44 +238,3 @@ class TestSignalDedup:
|
||||
view=zone.view
|
||||
).soa_serial
|
||||
assert new_serial == original_serial + 2
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
class TestNotifyNsEnabled:
|
||||
def test_enabled_by_all_zones_flag(self, make_zone, patch_settings):
|
||||
patch_settings({"notify_ns_all_zones": True})
|
||||
from netbox_dns_bridge.signals.netbox_dns_zones import _notify_ns_enabled
|
||||
|
||||
zone = make_zone(name="nsflag.test")
|
||||
assert _notify_ns_enabled(zone) is True
|
||||
|
||||
def test_disabled_by_default(self, make_zone, patch_settings):
|
||||
patch_settings({})
|
||||
from netbox_dns_bridge.signals.netbox_dns_zones import _notify_ns_enabled
|
||||
|
||||
zone = make_zone(name="nsdisabled.test")
|
||||
assert _notify_ns_enabled(zone) is False
|
||||
|
||||
def test_enabled_by_custom_field(self, make_zone, patch_settings):
|
||||
patch_settings({"notify_ns_custom_field_name": "enable_notify"})
|
||||
from netbox_dns_bridge.signals.netbox_dns_zones import _notify_ns_enabled
|
||||
|
||||
zone = make_zone(name="nscf.test")
|
||||
zone.custom_field_data = {"enable_notify": True}
|
||||
assert _notify_ns_enabled(zone) is True
|
||||
|
||||
def test_disabled_when_custom_field_false(self, make_zone, patch_settings):
|
||||
patch_settings({"notify_ns_custom_field_name": "enable_notify"})
|
||||
from netbox_dns_bridge.signals.netbox_dns_zones import _notify_ns_enabled
|
||||
|
||||
zone = make_zone(name="nscf-false.test")
|
||||
zone.custom_field_data = {"enable_notify": False}
|
||||
assert _notify_ns_enabled(zone) is False
|
||||
|
||||
def test_disabled_when_custom_field_missing(self, make_zone, patch_settings):
|
||||
patch_settings({"notify_ns_custom_field_name": "enable_notify"})
|
||||
from netbox_dns_bridge.signals.netbox_dns_zones import _notify_ns_enabled
|
||||
|
||||
zone = make_zone(name="nscf-missing.test")
|
||||
zone.custom_field_data = {}
|
||||
assert _notify_ns_enabled(zone) is False
|
||||
Reference in new issue
Block a user