Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
7fc972a2
Kaydet (Commit)
7fc972a2
authored
Şub 03, 2013
tarafından
Georg Brandl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#17109: fix headings in mock example doc.
üst
fb13438a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
14 deletions
+14
-14
unittest.mock-examples.rst
Doc/library/unittest.mock-examples.rst
+14
-14
No files found.
Doc/library/unittest.mock-examples.rst
Dosyayı görüntüle @
7fc972a2
...
@@ -418,14 +418,14 @@ decorator indvidually to every method whose name starts with "test".
...
@@ -418,14 +418,14 @@ decorator indvidually to every method whose name starts with "test".
.. _further-examples:
.. _further-examples:
Further Examples
Further Examples
================
----------------
Here are some more examples for some slightly more advanced scenarios.
Here are some more examples for some slightly more advanced scenarios.
Mocking chained calls
Mocking chained calls
---------------------
~~~~~~~~~~~~~~~~~~~~~
Mocking chained calls is actually straightforward with mock once you
Mocking chained calls is actually straightforward with mock once you
understand the :attr:`~Mock.return_value` attribute. When a mock is called for
understand the :attr:`~Mock.return_value` attribute. When a mock is called for
...
@@ -496,7 +496,7 @@ this list of calls for us:
...
@@ -496,7 +496,7 @@ this list of calls for us:
Partial mocking
Partial mocking
---------------
~~~~~~~~~~~~~~~
In some tests I wanted to mock out a call to `datetime.date.today()
In some tests I wanted to mock out a call to `datetime.date.today()
<http://docs.python.org/library/datetime.html#datetime.date.today>`_ to return
<http://docs.python.org/library/datetime.html#datetime.date.today>`_ to return
...
@@ -540,7 +540,7 @@ is discussed in `this blog entry
...
@@ -540,7 +540,7 @@ is discussed in `this blog entry
Mocking a Generator Method
Mocking a Generator Method
--------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~
A Python generator is a function or method that uses the `yield statement
A Python generator is a function or method that uses the `yield statement
<http://docs.python.org/reference/simple_stmts.html#the-yield-statement>`_ to
<http://docs.python.org/reference/simple_stmts.html#the-yield-statement>`_ to
...
@@ -582,7 +582,7 @@ To configure the values returned from the iteration (implicit in the call to
...
@@ -582,7 +582,7 @@ To configure the values returned from the iteration (implicit in the call to
Applying the same patch to every test method
Applying the same patch to every test method
--------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you want several patches in place for multiple test methods the obvious way
If you want several patches in place for multiple test methods the obvious way
is to apply the patch decorators to every method. This can feel like unnecessary
is to apply the patch decorators to every method. This can feel like unnecessary
...
@@ -642,7 +642,7 @@ exception is raised in the setUp then tearDown is not called.
...
@@ -642,7 +642,7 @@ exception is raised in the setUp then tearDown is not called.
Mocking Unbound Methods
Mocking Unbound Methods
-----------------------
~~~~~~~~~~~~~~~~~~~~~~~
Whilst writing tests today I needed to patch an *unbound method* (patching the
Whilst writing tests today I needed to patch an *unbound method* (patching the
method on the class rather than on the instance). I needed self to be passed
method on the class rather than on the instance). I needed self to be passed
...
@@ -681,7 +681,7 @@ with a Mock instance instead, and isn't called with `self`.
...
@@ -681,7 +681,7 @@ with a Mock instance instead, and isn't called with `self`.
Checking multiple calls with mock
Checking multiple calls with mock
---------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mock has a nice API for making assertions about how your mock objects are used.
mock has a nice API for making assertions about how your mock objects are used.
...
@@ -723,7 +723,7 @@ looks remarkably similar to the repr of the `call_args_list`:
...
@@ -723,7 +723,7 @@ looks remarkably similar to the repr of the `call_args_list`:
Coping with mutable arguments
Coping with mutable arguments
-----------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Another situation is rare, but can bite you, is when your mock is called with
Another situation is rare, but can bite you, is when your mock is called with
mutable arguments. `call_args` and `call_args_list` store *references* to the
mutable arguments. `call_args` and `call_args_list` store *references* to the
...
@@ -839,7 +839,7 @@ children of a `CopyingMock` will also have the type `CopyingMock`.
...
@@ -839,7 +839,7 @@ children of a `CopyingMock` will also have the type `CopyingMock`.
Nesting Patches
Nesting Patches
---------------
~~~~~~~~~~~~~~~
Using patch as a context manager is nice, but if you do multiple patches you
Using patch as a context manager is nice, but if you do multiple patches you
can end up with nested with statements indenting further and further to the
can end up with nested with statements indenting further and further to the
...
@@ -887,7 +887,7 @@ for us:
...
@@ -887,7 +887,7 @@ for us:
Mocking a dictionary with MagicMock
Mocking a dictionary with MagicMock
-----------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You may want to mock a dictionary, or other container object, recording all
You may want to mock a dictionary, or other container object, recording all
access to it whilst having it still behave like a dictionary.
access to it whilst having it still behave like a dictionary.
...
@@ -962,7 +962,7 @@ mock methods and attributes:
...
@@ -962,7 +962,7 @@ mock methods and attributes:
Mock subclasses and their attributes
Mock subclasses and their attributes
------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are various reasons why you might want to subclass `Mock`. One reason
There are various reasons why you might want to subclass `Mock`. One reason
might be to add helper methods. Here's a silly example:
might be to add helper methods. Here's a silly example:
...
@@ -1025,7 +1025,7 @@ onto the mock constructor:
...
@@ -1025,7 +1025,7 @@ onto the mock constructor:
Mocking imports with patch.dict
Mocking imports with patch.dict
-------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
One situation where mocking can be hard is where you have a local import inside
One situation where mocking can be hard is where you have a local import inside
a function. These are harder to mock because they aren't using an object from
a function. These are harder to mock because they aren't using an object from
...
@@ -1088,7 +1088,7 @@ With slightly more work you can also mock package imports:
...
@@ -1088,7 +1088,7 @@ With slightly more work you can also mock package imports:
Tracking order of calls and less verbose call assertions
Tracking order of calls and less verbose call assertions
--------------------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The :class:`Mock` class allows you to track the *order* of method calls on
The :class:`Mock` class allows you to track the *order* of method calls on
your mock objects through the :attr:`~Mock.method_calls` attribute. This
your mock objects through the :attr:`~Mock.method_calls` attribute. This
...
@@ -1168,7 +1168,7 @@ order. In this case you can pass `any_order=True` to `assert_has_calls`:
...
@@ -1168,7 +1168,7 @@ order. In this case you can pass `any_order=True` to `assert_has_calls`:
More complex argument matching
More complex argument matching
------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using the same basic concept as :data:`ANY` we can implement matchers to do more
Using the same basic concept as :data:`ANY` we can implement matchers to do more
complex assertions on objects used as arguments to mocks.
complex assertions on objects used as arguments to mocks.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment