Coverage for netbox/search/signals.py: 100%
9 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1"""
2Connects the global search cache's post_save/post_delete receivers.
4Wired explicitly from CoreConfig.ready() (core/apps.py) rather than as a side effect of this
5module being imported, so connection happens deterministically at startup instead of depending
6on which of this subsystem's several consumers (netbox.forms.search, netbox.views.misc,
7extras.management.commands.reindex, netbox.search.jobs, core.jobs, dcim.signals) happens to
8import netbox.search first.
9"""
10from django.db.models.signals import post_delete, post_save
11from django.dispatch import receiver
13from .backends import search_backend
16@receiver(post_save)
17def caching_handler(sender, instance, created, **kwargs):
18 """
19 Update the search cache when an object is created or modified. Delegates to whichever
20 backend is configured; see SearchBackend.caching_handler().
21 """
22 search_backend.caching_handler(sender, instance, created=created, **kwargs)
25@receiver(post_delete)
26def removal_handler(sender, instance, **kwargs):
27 """
28 Remove an object's cached representation when it is deleted. Delegates to whichever
29 backend is configured; see SearchBackend.removal_handler().
30 """
31 search_backend.removal_handler(sender, instance, **kwargs)