Kaydet (Commit) 96200eb2 authored tarafından Mario Corchero's avatar Mario Corchero Kaydeden (comit) Victor Stinner

unittest.mock doc: Fix references to recursive seal of Mocks (GH-9028)

The docs in `library/unittest.mock` have been updated to remove
confusing terms about submock and be explicit about the behavior
expected.
üst 5a30620e
......@@ -2410,17 +2410,18 @@ Sealing mocks
.. function:: seal(mock)
Seal will disable the creation of mock children by preventing getting or setting
of any new attribute on the sealed mock. The sealing process is performed recursively.
Seal will disable the automatic creation of mocks when accessing an attribute of
the mock being sealed or any of its attributes that are already mocks recursively.
If a mock instance is assigned to an attribute instead of being dynamically created
If a mock instance with a name or a spec is assigned to an attribute
it won't be considered in the sealing chain. This allows one to prevent seal from
fixing part of the mock object. ::
>>> mock = Mock()
>>> mock.submock.attribute1 = 2
>>> mock.not_submock = mock.Mock()
>>> mock.not_submock = mock.Mock(name="sample_name")
>>> seal(mock)
>>> mock.new_attribute # This will raise AttributeError.
>>> mock.submock.attribute2 # This will raise AttributeError.
>>> mock.not_submock.attribute2 # This won't raise.
......
......@@ -2425,15 +2425,14 @@ class PropertyMock(Mock):
def seal(mock):
"""Disable the automatic generation of "submocks"
"""Disable the automatic generation of child mocks.
Given an input Mock, seals it to ensure no further mocks will be generated
when accessing an attribute that was not already defined.
Submocks are defined as all mocks which were created DIRECTLY from the
parent. If a mock is assigned to an attribute of an existing mock,
it is not considered a submock.
The operation recursively seals the mock passed in, meaning that
the mock itself, any mocks generated by accessing one of its attributes,
and all assigned mocks without a name or spec will be sealed.
"""
mock._mock_sealed = True
for attr in dir(mock):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment