Selaa lähdekoodia

Disconnect search backend during test to avoid discrepancy with ContentTypes on transaction rollback

Jeremy Stretch 2 vuotta sitten
vanhempi
commit
54b9d1b3f2
1 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  1. 6 0
      netbox/netbox/tests/test_staging.py

+ 6 - 0
netbox/netbox/tests/test_staging.py

@@ -1,9 +1,11 @@
+from django.db.models.signals import post_save
 from django.test import TransactionTestCase
 from django.test import TransactionTestCase
 
 
 from circuits.models import Provider, Circuit, CircuitType
 from circuits.models import Provider, Circuit, CircuitType
 from extras.choices import ChangeActionChoices
 from extras.choices import ChangeActionChoices
 from extras.models import Branch, StagedChange, Tag
 from extras.models import Branch, StagedChange, Tag
 from ipam.models import ASN, RIR
 from ipam.models import ASN, RIR
+from netbox.search.backends import search_backend
 from netbox.staging import checkout
 from netbox.staging import checkout
 from utilities.testing import create_tags
 from utilities.testing import create_tags
 
 
@@ -11,6 +13,10 @@ from utilities.testing import create_tags
 class StagingTestCase(TransactionTestCase):
 class StagingTestCase(TransactionTestCase):
 
 
     def setUp(self):
     def setUp(self):
+        # Disconnect search backend to avoid issues with cached ObjectTypes being deleted
+        # from the database upon transaction rollback
+        post_save.disconnect(search_backend.caching_handler)
+
         create_tags('Alpha', 'Bravo', 'Charlie')
         create_tags('Alpha', 'Bravo', 'Charlie')
 
 
         rir = RIR.objects.create(name='RIR 1', slug='rir-1')
         rir = RIR.objects.create(name='RIR 1', slug='rir-1')