Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
94ddf54
Flip equality to use mock calls' __eq__
ElizabethU Jul 11, 2019
b4c7d78
bpo-37555: Regression test demonstrating assert_has_calls not working…
ElizabethU Jul 14, 2019
ad99a9d
Revert "Flip equality to use mock calls' __eq__"
ElizabethU Jul 14, 2019
49c5310
bpo-37555: Add regression tests for mock ANY ordering issues
ElizabethU Jul 15, 2019
874fb69
bpo-37555: Fix _CallList and _Call order sensitivity
ElizabethU Jul 18, 2019
d72d6f5
bpo-37555: Ensure _call_matcher returns _Call object
ElizabethU Jul 20, 2019
f0e8411
Adding ACK and news entry
ElizabethU Jul 20, 2019
f295eac
bpo-37555: Replacing __eq__ with == to sidestep NotImplemented
ElizabethU Jul 20, 2019
18e964b
bpo-37555: cleaning up changes unnecessary to the final product
ElizabethU Jul 20, 2019
883841a
bpo-37555: Fixed call on bound arguments to respect args and kwargs
ElizabethU Jul 20, 2019
f4844c7
Revert "bpo-37555: Add regression tests for mock ANY ordering issues"
ElizabethU Jul 22, 2019
84489c8
Revert "bpo-37555: cleaning up changes unnecessary to the final product"
ElizabethU Jul 22, 2019
344ef17
Revert "bpo-37555: Replacing __eq__ with == to sidestep NotImplemented"
ElizabethU Jul 22, 2019
bdf430d
Revert "bpo-37555: Fix _CallList and _Call order sensitivity"
ElizabethU Jul 22, 2019
d3522b1
Updated NEWS.d
ElizabethU Jul 22, 2019
f47699d
bpo-37555: Add tests checking every function using _call_matcher both…
ElizabethU Aug 4, 2019
38650c9
bpo-37555: Ensure all assert methods using _call_matcher are actually…
ElizabethU Aug 5, 2019
24973c0
Remove AnyCompare and use call objects everywhere.
tirkarthi Aug 19, 2019
001d708
Revert "Remove AnyCompare and use call objects everywhere."
ElizabethU Sep 13, 2019
25dec66
Check for exception in assert_any_await
ElizabethU Sep 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
bpo-37555: Add regression tests for mock ANY ordering issues
Add regression tests for whether __eq__ is order agnostic on _Call and _CallList, which is useful for comparisons involving ANY, especially if the ANY comparison is to a class not defaulting __eq__ to NotImplemented.

Co-authored-by: Neal Finne <neal@nealfinne.com>
  • Loading branch information
ElizabethU and nealfinne committed Jul 15, 2019
commit 49c5310ad493c4356dd3bc58c03653cd9466c4fa
20 changes: 20 additions & 0 deletions Lib/unittest/test/testmock/testhelpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,16 @@ def test_call_list(self):
kall = call(1).method(2)(3).foo.bar.baz(4)(5).__int__()
self.assertEqual(kall.call_list(), mock.mock_calls)

def test_call_list_with_any_comparison_order(self):
class Foo:
def __eq__(self, other): pass
def __ne__(self, other): pass

mock = MagicMock()
mock(Foo())

self.assertEqual(call(ANY).call_list(), mock.mock_calls)
self.assertEqual(mock.mock_calls, call(ANY).call_list())

def test_call_any(self):
self.assertEqual(call, ANY)
Expand All @@ -331,6 +341,16 @@ def test_call_any(self):
self.assertEqual(m.mock_calls, [ANY])
self.assertEqual([ANY], m.mock_calls)

def test_call_any_comparison_order(self):
class Foo:
def __eq__(self, other): pass
def __ne__(self, other): pass

m = MagicMock()
m(Foo())

self.assertEqual(m.mock_calls[0], call(ANY))
self.assertEqual(call(ANY), m.mock_calls[0])

def test_two_args_call(self):
args = _Call(((1, 2), {'a': 3}), two=True)
Expand Down