summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorEmmanuel Arias <emmanuelarias30@gmail.com>2019-09-12 11:29:54 (GMT)
committerJulien Palard <julien@palard.fr>2019-09-12 11:29:54 (GMT)
commit31a82e25b6044a5b5ee25246bad3eb7b873cf5ec (patch)
treedf2abcd002dd76cd187d9fb3aed5a5a1afc3559c /Doc
parent2c910c1e732c9a3ec4c67a7c43d789d6c729304a (diff)
downloadcpython-31a82e25b6044a5b5ee25246bad3eb7b873cf5ec.zip
cpython-31a82e25b6044a5b5ee25246bad3eb7b873cf5ec.tar.gz
cpython-31a82e25b6044a5b5ee25246bad3eb7b873cf5ec.tar.bz2
bpo-35685: Add examples of unittest.mock.patch.dict usage (GH-11456)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/unittest.mock.rst31
1 files changed, 27 insertions, 4 deletions
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
index 04ff8a6..b446ddb 100644
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -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
~~~~~~~~~~~