Skip to content

Commit d381ac5

Browse files
authored
Merge pull request #99 from cMancio00/inorder-implementation
Inorder implementation
2 parents 013e266 + 3796b3e commit d381ac5

14 files changed

Lines changed: 1216 additions & 743 deletions

.flake8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ ignore =
1111
E731
1212
exclude = .git,.github,.cache,.mypy_cache,.pytest_cache,docs,.venv,.build,build
1313
max-complexity = 10
14-
max-line-length = 79
14+
max-line-length = 89

CHANGES.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,25 @@ Release 2.0.0
1212
check can be disabled with the environment variable `MOCKITO_CONTEXT_MANAGERS_CHECK_USAGE="0"`.
1313
- The `between` matcher now supports open ranges, e.g. `between=(0,)` to assert that at least
1414
0 interactions occurred.
15+
- Added a first-class `InOrder` API via ``mockito.InOrder`` (also available as
16+
``mockito.inorder.InOrder``). The legacy in-order mode only supported one mock at a time;
17+
the new API supports true cross-mock order verification.
18+
19+
Migration (old limited style -> new style)::
20+
21+
# Before (legacy, single-mock order only)
22+
from mockito import inorder
23+
inorder.verify(cat).meow()
24+
inorder.verify(cat).purr()
25+
26+
# Now (preferred, explicit cross-mock order)
27+
from mockito import InOrder
28+
in_order = InOrder(cat, dog)
29+
in_order.verify(cat).meow()
30+
in_order.verify(dog).bark()
31+
32+
- The legacy in-order verification mode (``inorder.verify(...)``)
33+
is deprecated in favor of ``InOrder(...)``.
1534

1635

1736

docs/the-functions.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ This looks like a plethora of verification functions, and especially since you
2222
.. autofunction:: verifyZeroInteractions
2323
.. autofunction:: verifyExpectedInteractions
2424

25+
In-order verification across one or multiple observed objects is provided by
26+
:class:`InOrder`.
27+
28+
.. autoclass:: InOrder
29+
:class-doc-from: class
30+
2531
Note that `verifyExpectedInteractions` was named `verifyNoUnwantedInteractions` in v1.
2632
The usage of `verifyNoUnwantedInteractions` is deprecated.
2733

mockito/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
ArgumentError,
3939
)
4040
from . import inorder
41+
from .inorder import InOrder
4142
from .spying import spy, spy2
4243
from .mocking import mock
4344
from .verification import VerificationError
@@ -67,6 +68,7 @@
6768
'verifyExpectedInteractions',
6869
'verifyStubbedInvocationsAreUsed',
6970
'inorder',
71+
'InOrder',
7072
'unstub',
7173
'forget_invocations',
7274
'VerificationError',

0 commit comments

Comments
 (0)