import warnings from django.dispatch import Signal from django.test import SimpleTestCase from django.utils.deprecation import RemovedInDjango40Warning class SignalDeprecationTests(SimpleTestCase): def test_providing_args_warning(self): msg = ( 'The providing_args argument is deprecated. As it is purely ' 'documentational, it has no replacement. If you rely on this ' 'argument as documentation, you can move the text to a code ' 'comment or docstring.' ) with self.assertWarnsMessage(RemovedInDjango40Warning, msg): Signal(providing_args=['arg1', 'arg2']) def test_without_providing_args_does_not_warn(self): with warnings.catch_warnings(record=True) as recorded: Signal() self.assertEqual(len(recorded), 0)