[3.0.x] Fixed #30927 -- Simplified an example of test for the deprecation warning with assertWarnsMessage().

Backport of 54a7b02112 from master
This commit is contained in:
André Ericson 2019-10-29 20:27:22 +01:00 committed by Mariusz Felisiak
parent 574f238582
commit 3c5f8313c2
1 changed files with 4 additions and 9 deletions

View File

@ -200,20 +200,15 @@ level:
class MyDeprecatedTests(unittest.TestCase):
...
You can also add a test for the deprecation warning. You'll have to disable the
"warning as error" behavior in your test by doing::
You can also add a test for the deprecation warning::
import warnings
from django.utils.deprecation import RemovedInDjangoXXWarning
def test_foo_deprecation_warning(self):
with warnings.catch_warnings(record=True) as warns:
warnings.simplefilter('always') # prevent warnings from appearing as errors
msg = 'Expected deprecation message'
with self.assertWarnsMessage(RemovedInDjangoXXWarning, msg):
# invoke deprecated behavior
self.assertEqual(len(warns), 1)
msg = str(warns[0].message)
self.assertEqual(msg, 'Expected deprecation message')
Finally, there are a couple of updates to Django's documentation to make:
#) If the existing feature is documented, mark it deprecated in documentation