gh-100740: Fix unittest.mock.Mock not respecting the spec for
attribute names prefixed with assert.
gh-100690: Mock objects which are not unsafe will now raise an
AttributeError when accessing an attribute that matches the name of an
assertion but without the prefix assert_, e.g. accessing
called_once instead of assert_called_once. This is in addition to
this already happening for accessing attributes with prefixes assert,
assret, asert, aseert, and assrt.
gh-96127: inspect.signature was raising TypeError on call with
mock objects. Now it correctly returns (*args, **kwargs) as infered
signature.
5.0.0
gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect
concurrent access to mock attributes.
bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a
result, an already-mocked object cannot have an attribute mocked using
autospec=True or be the subject of a create_autospec(...) call. This
can uncover bugs in tests since these Mock-derived Mocks will always pass
certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.
bpo-45156: Fixes infinite loop on :func:unittest.mock.seal of mocks
created by :func:~unittest.create_autospec.
bpo-41403: Make :meth:mock.patch raise a :exc:TypeError with a
relevant error message on invalid arg. Previously it allowed a cryptic
:exc:AttributeError to escape.
gh-91803: Fix an error when using a method of objects mocked with
:func:unittest.mock.create_autospec after it was sealed with
:func:unittest.mock.seal function.
bpo-41877: AttributeError for suspected misspellings of assertions on
mocks are now pointing out that the cause are misspelled assertions and
also what to do if the misspelling is actually an intended attribute name.
The unittest.mock document is also updated to reflect the current set of
recognised misspellings.
bpo-43478: Mocks can no longer be provided as the specs for other Mocks.
As a result, an already-mocked object cannot be passed to mock.Mock().
This can uncover bugs in tests since these Mock-derived Mocks will always
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps mock from 4.0.3 to 5.0.1.
Changelog
Sourced from mock's changelog.
... (truncated)
Commits
921fad1
Preparing for 5.0.1 release.696fb23
Backwards compatibility fix for 3.7 and earlier.296d856
latest sync point7df4d38
fix up mock tests coverageee9744d
gh-96127: Fixinspect.signature
call on mocks (#96335)5219601
Backwards compatibility fix for 3.8 and earlier.18046f1
gh-100690: [mock] hideATTRIB_DENY_LIST
and make it immutable (#100819)21787a9
gh-100690: Raise an AttributeError when the assert_ prefix is forgotten when ...aeca482
gh-100739: Respect mock spec when checking for unsafe prefixes (#100740)135ca36
Update issue templatesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)