]> granicus.if.org Git - python/commitdiff
bpo-35685: Add examples of unittest.mock.patch.dict usage (GH-11456)
authorEmmanuel Arias <emmanuelarias30@gmail.com>
Thu, 12 Sep 2019 11:29:54 +0000 (08:29 -0300)
committerJulien Palard <julien@palard.fr>
Thu, 12 Sep 2019 11:29:54 +0000 (13:29 +0200)
Doc/library/unittest.mock.rst

index 04ff8a61da3c563843bb48d09bb2efb86f154724..b446ddb3598f2939432c7f2cf462047898fa9bc2 100644 (file)
@@ -1572,15 +1572,36 @@ patch.dict
     :func:`patch.dict` can also be called with arbitrary keyword arguments to set
     values in the dictionary.
 
-    :func:`patch.dict` can be used as a context manager, decorator or class
-    decorator. When used as a class decorator :func:`patch.dict` honours
-    ``patch.TEST_PREFIX`` for choosing which methods to wrap.
-
     .. versionchanged:: 3.8
 
         :func:`patch.dict` now returns the patched dictionary when used as a context
         manager.
 
+:func:`patch.dict` can be used as a context manager, decorator or class
+decorator:
+
+    >>> foo = {}
+    >>> @patch.dict(foo, {'newkey': 'newvalue'})
+    ... def test():
+    ...     assert foo == {'newkey': 'newvalue'}
+    >>> test()
+    >>> assert foo == {}
+
+When used as a class decorator :func:`patch.dict` honours
+``patch.TEST_PREFIX`` (default to ``'test'``) for choosing which methods to wrap:
+
+    >>> import os
+    >>> import unittest
+    >>> from unittest.mock import patch
+    >>> @patch.dict('os.environ', {'newkey': 'newvalue'})
+    ... class TestSample(unittest.TestCase):
+    ...     def test_sample(self):
+    ...         self.assertEqual(os.environ['newkey'], 'newvalue')
+
+If you want to use a different prefix for your test, you can inform the
+patchers of the different prefix by setting ``patch.TEST_PREFIX``. For
+more details about how to change the value of see :ref:`test-prefix`.
+
 :func:`patch.dict` can be used to add members to a dictionary, or simply let a test
 change a dictionary, and ensure the dictionary is restored when the test
 ends.
@@ -1793,6 +1814,8 @@ builtin :func:`ord`::
     101
 
 
+.. _test-prefix:
+
 TEST_PREFIX
 ~~~~~~~~~~~