|
@@ -351,20 +351,51 @@ class LazyModelRefTests(BaseSignalSetup, SimpleTestCase):
|
|
|
signals.post_init.disconnect(self.receiver, sender=Created)
|
|
|
|
|
|
@isolate_apps('signals', kwarg_name='apps')
|
|
|
- def test_disconnect(self, apps):
|
|
|
+ def test_disconnect_registered_model(self, apps):
|
|
|
received = []
|
|
|
|
|
|
def receiver(**kwargs):
|
|
|
received.append(kwargs)
|
|
|
|
|
|
- signals.post_init.connect(receiver, sender='signals.Created', apps=apps)
|
|
|
- signals.post_init.disconnect(receiver, sender='signals.Created', apps=apps)
|
|
|
-
|
|
|
class Created(models.Model):
|
|
|
pass
|
|
|
|
|
|
- Created()
|
|
|
- self.assertEqual(received, [])
|
|
|
+ signals.post_init.connect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ try:
|
|
|
+ self.assertIsNone(
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ )
|
|
|
+ self.assertIsNone(
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ )
|
|
|
+ Created()
|
|
|
+ self.assertEqual(received, [])
|
|
|
+ finally:
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created')
|
|
|
+
|
|
|
+ @isolate_apps('signals', kwarg_name='apps')
|
|
|
+ def test_disconnect_unregistered_model(self, apps):
|
|
|
+ received = []
|
|
|
+
|
|
|
+ def receiver(**kwargs):
|
|
|
+ received.append(kwargs)
|
|
|
+
|
|
|
+ signals.post_init.connect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ try:
|
|
|
+ self.assertIsNone(
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ )
|
|
|
+ self.assertIsNone(
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created', apps=apps)
|
|
|
+ )
|
|
|
+
|
|
|
+ class Created(models.Model):
|
|
|
+ pass
|
|
|
+
|
|
|
+ Created()
|
|
|
+ self.assertEqual(received, [])
|
|
|
+ finally:
|
|
|
+ signals.post_init.disconnect(receiver, sender='signals.Created')
|
|
|
|
|
|
def test_register_model_class_senders_immediately(self):
|
|
|
"""
|