Coverage for apis_core/apis_metainfo/signals.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-02-19 16:54 +0000

1import logging 

2 

3from django.contrib.contenttypes.models import ContentType 

4from django.db.models.signals import post_delete 

5from django.dispatch import receiver 

6 

7from apis_core.apis_metainfo.models import Uri 

8 

9logger = logging.getLogger(__name__) 

10 

11 

12@receiver(post_delete) 

13def remove_stale_uris(sender, instance, *args, **kwargs): 

14 content_type = ContentType.objects.get_for_model(instance) 

15 if isinstance(instance.pk, int): 

16 uris = Uri.objects.filter(content_type=content_type, object_id=instance.pk) 

17 for uri in uris: 

18 logger.info( 

19 "Deleting uri %s as a result of deleting %s", repr(uri), repr(instance) 

20 ) 

21 uri.delete()