mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #26778 -- Fixed ModelSignal.connect() weak argument.
This commit is contained in:
parent
8ba44ecda0
commit
9bf8d50a67
2 changed files with 18 additions and 2 deletions
|
@ -4,7 +4,7 @@ from django.apps.registry import Apps
|
|||
from django.db import models
|
||||
from django.db.models import signals
|
||||
from django.dispatch import receiver
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, mock
|
||||
from django.test.utils import isolate_apps
|
||||
from django.utils import six
|
||||
|
||||
|
@ -258,6 +258,19 @@ class SignalTests(BaseSignalTest):
|
|||
self.assertTrue(b._run)
|
||||
self.assertEqual(signals.post_save.receivers, [])
|
||||
|
||||
@mock.patch('weakref.ref')
|
||||
def test_lazy_model_signal(self, ref):
|
||||
def callback(sender, args, **kwargs):
|
||||
pass
|
||||
signals.pre_init.connect(callback)
|
||||
signals.pre_init.disconnect(callback)
|
||||
self.assertTrue(ref.called)
|
||||
ref.reset_mock()
|
||||
|
||||
signals.pre_init.connect(callback, weak=False)
|
||||
signals.pre_init.disconnect(callback)
|
||||
ref.assert_not_called()
|
||||
|
||||
|
||||
class LazyModelRefTest(BaseSignalTest):
|
||||
def setUp(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue